字符编码相关
来源:互联网 发布:海思四核3798m阿里云 编辑:程序博客网 时间:2024/05/20 09:46
Ascii: 0-127 空格、标点符号、数字、大小写字母
128-255 扩展字符集
GB2312(全角字符):把扩展字符集取消掉,两个大于127的字符连接在一起时就表示一个汉字,
高字节(0xA1--0xF7),低字节(0xA1--0xFE).可以组合7000多简体汉字
(0-127继续保持Ascii--半角字符)
GBK: 高字节大于127,低字节无要求。组合后,包括了GB2312的所有字符,同时又增加了近20000个新的汉字和符号。
GB18030:继续扩展,又加了几千个新的少数民族的字。
以上标准通称做DBCS(Double Byte Charecter Set双字节字符集)
-------------------------------------------------------------
ISO
UNICODE (Universal Multiple-Octet Coded Character Set),简称UCS,用16位来表示所有的字符,可以
组合出65535个字符。Ascii的半角字符保持不变,只是由8位变成16位来保存(即高字节都是0)。
此时,发现strlen函数靠不住了,一个汉字不再是两个字符,而是一个,
从UNICODE开始,无论是半角英文字母,还是全角的汉字,都统一是一个字符,都是统一用两个字节来保存。
注意:字节与字符->
字节:是一个8位的物理存贮单元;
字符:是一个文化相关的符号。
从WINDOWS NT开始,就都用UNICODE。
若还还不够用,ISO准备了UCS-4方案,即用四个字节来表示一个字符,
这样可以组合出21亿个不同的字符。
UTF(UCS Transfer Format):
UTF8: 每次传输8位数据
UTF16 每次传输16位数据
在网络里传递信息时有一个很重要的问题,就是对于数据高低位的解读方式,一些计算机是采用低位先发送的方法,例如我们PC机采用的 INTEL架构,而另一些是采用高位先发送的方式,在网络中交换数据时,为了核对双方对于高低位的认识是否是一致的,采用了一种很简便的方法,就是在文本流的开始时向对方发送一个标志符——如果之后的文本是高位在位,那就发送"FEFF",反之,则发送"FFFE"。不信你可以用二进制方式打开一个UTF-X格式的文件,看看开头两个字节是不是这两个字节?
讲到这里,我们再顺便说说一个很著名的奇怪现象:当你在 windows的记事本里新建一个文件,输入"联通"两个字之后,保存,关闭,然后再次打开,你会发现这两个字已经消失了,代之的是几个乱码!呵呵,有人说这就是联通之所以拼不过移动的原因。
其实这是因为GB2312编码与UTF8编码产生了编码冲撞的原因。
- 字符编码相关
- 字符编码相关讲解
- 字符编码相关知识
- java字符编码相关
- 字符编码转换相关
- 字符编码相关
- 字符编码相关
- 字符编码相关问题
- 字符编码相关
- mysql编码字符相关
- 字符编码相关
- py2字符编码相关
- java IO 字符编码相关
- 字符编码相关概念理解
- 字符编码相关文章(转载 。。很不错)
- JAVA WEB 相关的字符编码
- 字符与编码相关概念的介绍
- 浅解字符编码相关问题
- struts2 返回boolean类型
- C程序获取当前日期和时间(第六章)
- HDU Eddy's research I
- 配置VS2010具有代码提示功能
- java反射---获取类型信息
- 字符编码相关
- GetLogicalDriveStrings获取盘符
- POJ 2559 最大矩形面积 poj 3494
- 跟着辛星认识一下PHP的自动加载
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- hadoop编程小技巧(5)---自定义输入文件格式类InputFormat
- Android 获取Root权限之后的静默安装实现 代码示例分析
- android:duplicateParentState属性解释
- 数据结构之图(存储结构、遍历)