赞
踩
我们常见的字符编码有ascii、utf8、utf16、utf32、GB2312、GBK 、GB18080有一个共同的称呼,机内码,这些字符编码方式被广泛应用于计算机中的文件中、网络传输、运行时内存中的字符表示等等。
qt vs 编程 字符编码 程序从源码到编译到显示过程中存在的字符编码及转换-CSDN博客
像ASCII一样,GB2312和GBK既包含字符集,又包含编码。GBK字符集编码 兼容 GB2312字符集编码,GB2312字符编码 兼容 一个字节的ASCII字符集编码,像俄罗斯套娃一样。所以GB2312编码和GBK编码 是一个字节(ASCII码)或两个字节的编码。为了囊括更多字符(比如中国各个少数名族的语言及其字符),出现了一个或两个或四个字节的,且兼容GBK字符集编码的GB18030字符集编码。
举个例子: 假如你使用GB2312写了这么一句话: 我叫ABC
它的二进制编码是这样的:11001110 11010010 10111101 11010000 01000001 01000002 01000003
解码的时候,当遇到1开头的字节,就把两个字节合起来解释为一个字符,于是11001110 11010010会被解释为我;遇到0开头的字节,就只把这个字节解释为一个字符,于是01000001就会被解释为A了。
所以,假设你用GB2312写了一段英文ABC
它的二进制编码会是01000001 01000002 01000003
可以发现,如果使用ASCII写的话,编码也是一样的。
这就能解释了,为什么用GB2312编码的英文,可以用ASCII正常解码出来。再举个例子:
AA你好 是GB2312字符集中的字符,对应的GB2312编码为0x41 0x41 0xC4E3 0xBAC3
GBK兼容GB2312,所以 AA你好 的GBK编码为:0x41 0x41 0xC4E3 0xBAC3char *ptr=“AA你好” //在vs编译后使用ansi编码,内存中对应的值为:
41 41 C4 E3 BA C3
汉字字符集编码查询;中文字符集编码:GB2312、BIG5、GBK、GB18030、Unicode
ansi编码方案_百度百科 不是指一种具体的编码方案,它是跟国家相关的,每个国家都有字节本地化的一套字符集和编码。ansi采用一个或两个字节编码字符,其意义更像是强调本地化编码方案要与ASCII兼容的规范。在中国,ansi编码默认直接采用GBK字符集编码,也就是说ansi编码与GBK编码是一样的,GBK中包含了中国常用的字符集;在日本,ansi则采用另外一种字符集编码(因为日文字符集与中文字符集不一样),在其他地方亦如此,美个国家或地区都有自己的字符集及对应的编码,但基本都存在类似GBK这样的字符集编码,用一到两个字节就表示完常用的字符集。字节本地化的意义在于节省内容存储空间,方便本地的数据传输,但是却给跨区域数据传输造成不便。
ASCII字符集中有128个字符。ASCII码对照表-BeJSON.com
GB2312中收录了6763个汉字以及682个特殊符号,已经囊括了生活中最常用的所有汉字及所兼容的ASCII字符集。GB2312汉字编码字符集对照表BeJSON.com
GBK表示的汉字达到了20902个,另有984个汉语标点符号、部首等,包含了 繁体字 及所兼容的GB2312字符集。最全面的GBK编码表/GBK字符集 - 常用参考表对照表
GB18030-2000规定了常用非汉字符号和27533个汉字(包括部首、部件等)的编码。
GB18030-2005是以汉字为主并包含多种我国少数民族文字的超大型中文编码字符集,其中收入汉字70000余个,在GB18030-2000的基础上增加了42711个汉字和多种我国少数民族文字的编码(如藏、蒙古、傣、彝、朝鲜、维吾尔文等)。
GB18030-2022在2005版基础上再增加了一万多个汉字,使得汉字总数达到87887个,全面覆盖了《通用规范汉字表》中的汉字。收录的少数民族文字包括:藏文、滇东北苗文、彝文、傈僳文、朝鲜文、西双版纳新傣文、西双版纳老傣文、维吾尔文、哈萨克文、柯尔克孜文、蒙古文、德宏傣文等。
在线预览|GB 18030-2022
国家标准 - 全国标准信息公共服务平台
GB18030 编码范围, GB18030 编码表
在线字体查看器 - bejson在线工具
刨根究底字符编码之六——简体汉字编码中区位码、国标码、内码、外码、字形码的区别及关系
刨根究底字符编码之七——ANSI编码与代码页(Code Page)。
基本概念
unicode:统一码_百度百科
字节本地化节省内容存储空间,却给跨区域传递和显示造成极大不便。为了解决这个痛点,有人就想到了,将所有国家或地区的本地化的字符全部进行统一编码。这就是unicode字符集及编码。
unicode 本身既包含字符集,又包含编码。unicode字符集,囊括了各个国家或地区的本地化的字符集,甚至历史上出现过的和虚构的字符集。unicode字符集分成17个平面,全世界常用的字符绝大部分都在第0号平面(BMP)中,这里面囊括了GB2312中的字符集:深入理解“字符编码模型” - 掘金
unicode 第0个平面(BMP) 字符编码 及 内部分区 - 365建站网
unicode字符集可以用utf8(Unicode Transformation Format 8bit),ucs2(universol charactor set 2 byte)(utf16),ucs4(utf32)等编码方案来编码。 usc4编码就是unicode编码。
utf8、utf16、utf32是用于编码unicode字符集的编码方案!!!GB2312编码是用于编码GB2312字符集的编码方案!!!
换句话说,unicode字符集有utf8、utf16(大小端)、utf32(大小端)三种编码方案,而GB2312字符集只有GB2312一种编码方案。汉字字符集编码查询;中文字符集编码:GB2312、BIG5、GBK、GB18030、Unicode
UTF-8编码兼容ASCII编码,采用一个或多个字节表示一个字符。
UTF-16不兼容ASCII编码,UTF-16采用两个或两个的倍数的字节表示一个字符。
UTF-32不兼容ASCII编码,采用四个字节表示一个字符,现在unicode所表示的字符集还没有超出范围,如果超出了所表示的范围,会出现四个或四个的倍数的字节表示一个字符。
unicode 规定的 BOM
unicode字符集的各种编码方案的具体编码规则参考:
所谓编码--泛谈ASCII、Unicode、UTF-8、UTF-16、UCS-2等编码格式_-CSDN博客
UTF-8, UTF-16, UTF-32编码的具体算法 - 知乎
windows默认采用ansi(有的时候是一个字节,有的时候是两个字节)编码方案,windows下创建文本文件默认都是ansi编码。linux则默认采用UTF-8编码。
windows下识别ansi是GBK,还是无BOM的utf8编码是个比较重要的工作,一般步骤是先当做无BOM的utf8编码进行逐个字符解读,如果遇到非法utf8字符,就认为是ansi编码,又重新回去解读。
windows的记事本(notepad)程序,将内容保存成ansi编码的时候,如果遇到了超出GBK编码的字符,就会将该字符用值为0x3f3f的两个字节进行替换,并导致该字符遗失。淡然保存的时候一般会有下面这样的提示:
因为“
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。