各种字符编码与Char字符
目录
一、字符集与字符编码
二、常见的字符集与其对应的字符编码
三、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字符相关推荐
- php 删除mysql 返回_php 返回mysql字符编码与删除字符编码
php 返回mysql字符编码与删除字符编码 function Ebak_GetSetChar($char){ global $empire; if(empty($char)) { return '' ...
- 【转】刨根究底字符编码之九——字符编码方案的演变与字节序
字符编码方案的演变与字节序 一.字符编码方案的演变 1. 根据前面的介绍,对于字符编码方案的演变,我们大致上可简单地划分为三个阶段: ① ASCII编码方案阶段 → ② ANSI编码方案阶段 → ③ ...
- python字符编码讲解_python 字符编码讲解
ASCII控制字符 Unicode编码 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字 ...
- python默认采用什么字符编码_Python01.2.字符编码-输入输出
1.字符编码 计算机存储的任何数据,包括各种文本.图片.音视频文件等等,实际上都是一串二进制数字01字节序列组成的.一个字节Byte(B)是8个比特bit(b).而字符,自然就是符号了.比如说二十六个 ...
- mysql8默认字符编码_mysql默认字符编码问题
在mysql中导入一个2m多的数据db.sql,由于.sql 文件不是自己写的,在win下用mysql命令行客户端导入时一直提示错误. 开始导入一直崩溃:mysql server has gone a ...
- python转换字符编码_Python常见字符编码间的转换
学习Python,字符编码间的转换是绕不过去的一只拦路虎,不把编码彻底搞明白,总有一天它会猝不及防坑你一把. Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将 ...
- html字符 编码转换,HTML字符编码
字符编码是将字节转换为字符的方法.要正确验证或显示HTML文档,程序必须选择正确的字符编码. 在计算机上使用的最常见的字符集或字符编码是ASCII美国信息交换标准代码,这可能是电子编码文本中使用最广泛 ...
- java字符编码采用_JAVA字符编码三:Java应用中的编码问题
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
- java字符编码问题_JAVA字符编码系列三:Java应用中的编码问题
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
最新文章
- sql实现两张表的拷贝
- delphi dbgrid 上下移动并获取选中值_如何在UE4移动端中实现HZB?
- 子shell中使用相关的环境变量
- 【Android View绘制之旅】Measure过程
- 【直播回放】新手如何入门并学习计算机视觉?
- boost库 数组智能指针scoped_array
- Java将map置空_Java实现过滤掉map集合中key或value为空的值示例
- mysql数据库密码安全参数_MySQL 密码参数配置与修改 validate_password
- anjular.js读取数据库数据调用实例
- 倾斜摄影测量无人机炸机的八大原因及“炸机”预防措施
- toma线攻略_AMNESIA WORLD 手打攻略【SCHOOL WORLD part】アムネシア
- 地理信息系统概论 - 地理信息系统(1)
- python cnn识别图像_用CNN识别CT图像检测肺癌
- Tree Booster 的参数
- This beta version of Typora is expired, please download and install a newer version
- 批处理之批量修改文件扩展名
- 7-2 程序改错题4 (5 分)
- 金纳米粒子光热转换所用的光是什么光_学术热点之光热转换纳米材料
- CVPixelBufferRef与UIImage的互相转换
- 命令行查看笔记本电脑电池使用状态