编码格式一览

编程入门 行业动态 更新时间:2024-10-14 02:25:19

编码<a href=https://www.elefans.com/category/jswz/34/1771175.html style=格式一览"/>

编码格式一览

最近对于ultraEdit中的编码格式做了个简单了解:
ASCII码: 用一个字节的0-7bit(0-127)来表示字母、符号的编码方式,高位统一写0,但对于不同国家对于128-256的表示各有不同,形成了ASCII的扩展字符,但扩展字符是不统一的
GB2312: 对于汉字来说,一个字节太小了,所以GB2312用两个字节来表示一个汉字。为了和ASCII兼容,所以GB2312用两个大于127的字节来表示一个汉字,前面一个字节称为高位字节,范围为[0xa1, 0xf7],后一个字节为低位字节,范围为[0xa1, 0xfe]。GB2312也将ASCII码包含的内容用两个字节做了诠释,所以用两个字节表示的ASCII就称为全角,一个字节表示的则称为半角。
GBK: 后续的发展要求更多的汉字得到表示,所以低位字节可以小于127,只要高位大于127则表示一个汉字的开始。
UNICODE: 由于各个国家都这样搞起来,所以互相不兼容,导致了显示上的混乱,因此ISO决定做一套统一的标准涵盖各国的文字编码,是为UNICODE。UNICODE为各国的符号都规定了唯一的标识,但UNICODE只是一个符号集,它没有规定具体的存储方式,对于一个3个byte的unicode符号,你无法说清它是三个ASCII码符号还是一个UNICODE符号,所以对于统一的UNICODE符号,存在不同的存储方式,也可以看做编码方式。各个文档编译器中的unicode编码都指UCS-2编码 ,也就是用两个字节的unicode码直接表示,这样的话有大端和小端的区别。对于两个字节的unicode, 第一个字节在前,就是”大头方式“(Big endian),第二个字节在前就是”小头方式“(Little endian)
UTF-8: UTF-8是使用最广的一种编码方式或者说是UNICODE的实现方式。 1. 兼容ASCII码,对于[0, 0x7f]的单字节的符号,UTF-8和ASCII码采用相同的编码; 2. 对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10.剩下的没有提及的二进制位,全部为这个符号的unicode码。

下表总结了编码规则,字母x表示可用编码的位。

Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

对于一些文档编译器,会在UTF-8的文档签名加入(0xEF 0xBB 0xBF),即BOM


另外,对于ultraEdit中的Dos模式与Unix模式的转换,相差的就是UNIX用一个字符表示换行,而DOS用两个字符表示。因此,DOS模式的文档在Liunx下显示会多出一个^M字符。

更多推荐

编码格式一览

本文发布于:2024-03-14 14:27:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736671.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:格式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!