目录

一、字符集与字符编码

二、常见的字符集与其对应的字符编码

三、Char与Unicode


一、字符集与字符编码

1.字符集:各种字符的集合。

2.字符编码:字符集中每个独立的字符对应的编号

二、常见的字符集与其对应的字符编码

1.ASCLL字符集:

共128个字符,字符编码从二进制0000 0000—0111 1111,十六进制0x00 —0x7F

即从0—127。

0到31外加127为控制字符,共33个。

32到126为可见字符,共95个。(包括数字,英文字母,标点符号)

当其他欧洲国家使用美国的ASCLL码发现,128个字符根本不够用,于是ACSLL码进行了拓展。

2.扩展ACSLL字符集:

共128个字符,字符编码从二进制1000 0000—1111 1111,十六进制0x80—0xFF

即从128—255,也就是在ACSLL码的基础上把ACSLL码的最高位第8位置1增加了128个字符。

当以上字符集来到中国都不包括中文字符,那么则出现了中文字符集。

3.GB2312字符集

10-15为空白区 不做介绍

 侃的字符编码是5709,先将前两位和后两位分开得到57和09,再把57和09分别转换为16进制,得到0x39和0x09,然后分别加上0xA0得到0xD9和0xA9,最后把0xD9和0xA9合并得到0xD90xA9。

 加上0xA0后,GB2312字符编码的高八位和第八位都是大于127的。计算机处理字符编码时,通过判断判定字符编码的大小,判断该字符是ASCLL编码还是GB2312编码。当该编码小于127等于则是ASCLL码,当连续遇到两个大于127的8位则是GB2312编码。

但是中文字符太多了GB2312字符集也无法完全包括,于是出现了GBL字符集

4.GBK字符集

不再规定GB2312字符编码的低8位一定要小于127,只需要保证高8位大于127即可。并且规定计算机只要碰到一个大于127的字节,就代表一个汉字的开始。将这样的GB2312字符集编码称为GBK字符编码。

当出现了各个国家各种字符集和对应的字符编码之后,一段代码,使用不同的编码方式,同样对应的解码方式也就不一样,你的编码解码出来可能是一句通顺的话,但是在其他字符集编码中解码出来则可能是一堆乱码。于是为了解决这样的乱象,Unicode产生了。

5.Unicode

 a.UCS-2字符集

b.UCS-2字符集

UTF-8编码规则:UTF-8每次传送8位数据,UTF-8将UCS-4字符集的编码划分为4个区间

 编码方式:

例子:'王'   这个字符在UCS-4字符集里面的编码是0x0000 738B,

该编码位于第三区间即0x0000 0800到0x0000 FFFF。

化为二进制0000  0000  0000  0000  0111  0011  1000  1011

第三区间的编码格式:1110xxxx  10xxxxxx  10xxxxxx 

将'王'该字符在UCS-4字符集里面的二进制编码0000  0000  0000  0000  0111  0011  1000  1011

按照从后往前的顺序依次插入到第三区间的编码格式中去得到:11100111  10001110  10001011

再换成16进制:0xE7  0x8E 0x8B

三、Char与Unicode

Char类型采用Unicode编码在计算机内存中表示每个字符。Unicode编码是十六进制数,如果我们在编写程序时用十六进制表示字符是非常不方便的。所以在Java程序中Char类型的数据可以用单引号扩起来一个字符来直接表示 ,例如:’A’,’B’,’攀’,’博’,虽然程序中这样表示,其实Java虚拟机本身还是会以Unicode编码来表示字符,只是你看不到。

各种字符编码与Char字符相关推荐

  1. php 删除mysql 返回_php 返回mysql字符编码与删除字符编码

    php 返回mysql字符编码与删除字符编码 function Ebak_GetSetChar($char){ global $empire; if(empty($char)) { return '' ...

  2. 【转】刨根究底字符编码之九——字符编码方案的演变与字节序

    字符编码方案的演变与字节序 一.字符编码方案的演变 1. 根据前面的介绍,对于字符编码方案的演变,我们大致上可简单地划分为三个阶段: ① ASCII编码方案阶段 → ② ANSI编码方案阶段 → ③ ...

  3. python字符编码讲解_python 字符编码讲解

    ASCII控制字符  Unicode编码 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字 ...

  4. python默认采用什么字符编码_Python01.2.字符编码-输入输出

    1.字符编码 计算机存储的任何数据,包括各种文本.图片.音视频文件等等,实际上都是一串二进制数字01字节序列组成的.一个字节Byte(B)是8个比特bit(b).而字符,自然就是符号了.比如说二十六个 ...

  5. mysql8默认字符编码_mysql默认字符编码问题

    在mysql中导入一个2m多的数据db.sql,由于.sql 文件不是自己写的,在win下用mysql命令行客户端导入时一直提示错误. 开始导入一直崩溃:mysql server has gone a ...

  6. python转换字符编码_Python常见字符编码间的转换

    学习Python,字符编码间的转换是绕不过去的一只拦路虎,不把编码彻底搞明白,总有一天它会猝不及防坑你一把. Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将 ...

  7. html字符 编码转换,HTML字符编码

    字符编码是将字节转换为字符的方法.要正确验证或显示HTML文档,程序必须选择正确的字符编码. 在计算机上使用的最常见的字符集或字符编码是ASCII美国信息交换标准代码,这可能是电子编码文本中使用最广泛 ...

  8. java字符编码采用_JAVA字符编码三:Java应用中的编码问题

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

  9. java字符编码问题_JAVA字符编码系列三:Java应用中的编码问题

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

最新文章

  1. sql实现两张表的拷贝
  2. delphi dbgrid 上下移动并获取选中值_如何在UE4移动端中实现HZB?
  3. 子shell中使用相关的环境变量
  4. 【Android View绘制之旅】Measure过程
  5. 【直播回放】新手如何入门并学习计算机视觉?
  6. boost库 数组智能指针scoped_array
  7. Java将map置空_Java实现过滤掉map集合中key或value为空的值示例
  8. mysql数据库密码安全参数_MySQL 密码参数配置与修改 validate_password
  9. anjular.js读取数据库数据调用实例
  10. 倾斜摄影测量无人机炸机的八大原因及“炸机”预防措施
  11. toma线攻略_AMNESIA WORLD 手打攻略【SCHOOL WORLD part】アムネシア
  12. 地理信息系统概论 - 地理信息系统(1)
  13. python cnn识别图像_用CNN识别CT图像检测肺癌
  14. Tree Booster 的参数
  15. This beta version of Typora is expired, please download and install a newer version
  16. 批处理之批量修改文件扩展名
  17. 7-2 程序改错题4 (5 分)
  18. 金纳米粒子光热转换所用的光是什么光_学术热点之光热转换纳米材料
  19. CVPixelBufferRef与UIImage的互相转换
  20. 命令行查看笔记本电脑电池使用状态

热门文章

  1. ffmpeg php 抠像_FFMPEG批量绿幕抠像BAT脚本实现
  2. 2017年最后一篇文章:微信小程序游戏跳一跳刷榜原理解析!
  3. 国外java_Java开发必知道的国外10大网站
  4. 在Linux命令行上计划自己的假期日历
  5. PTA:7-37 秀恩爱分得快 (简洁易懂,详解)
  6. 崔羚:乳品行业后道包装及物流解决方案
  7. 简单说说我是怎么找回U盘删除的文件
  8. 离线地图-geoserver
  9. linux 服务器运维常用命令
  10. 助推外贸高质量发展,玉湖冷链模式引发服贸行业高度关注