编辑“︁
GB 2312
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 字节结构 == 在“GB 2312”字符集内,每个汉字及符号的码位使用两个[[字节]]来表示。第一个字节称为“高位字节”,对应分区的编号(把区位码的“区码”加上特定值);第二个字节称为“低位字节”,对应区段内的个别码位(把区位码的“位码”加上特定值)。 === ISO 2022-CN(国标码、交换码) === {{Anchor|ISO-2022-CN|国标码}} 为了避开ASCII字符中的不可显示字符(十六进制为<code>0×00</code>至<code>0×1F</code>,十进制为0至31)及空格字符(十六进制为<code>0×20</code>,十进制为32),国标码(又称为交换码)参考 [[ISO/IEC_2022|ISO 2022]] 规定表示非 ASCII 字符双字节编码范围为十六进制为 <code><21 21></code>-<code><7E 7E></code>,十进制为 (33, 33) 至 (126, 126)。因此,在进行码位转换时,须将“区码”和“位码”分别加上32(十六进制为<code>0×20</code>)作为国标码。 在这个编码模式内,软件需要使用低端控制字符(C0),高端控制字符(C1)和US-ASCII字符集(GL)标注字符属于单字节(ASCII)还是双字节,相对容易造成[[乱码]](如丢失控制/转义字符)。 在 “GB 2312”编码内,高位字节使用了<code>0x21—0x77</code>(把01—87区的区号加32或<code>0×20</code>),低位字节使用了<code>0x21—0x7E</code>(把01—94加上32或<code>0×20</code>)。 例:“-{万}-”字(区位码 45-82)的 ISO 2022 码十进制为:(45+32, 82+32) = (77, 114),十六进制为:'''<code><4D 72></code>'''。<ref name="zhongwenbianma-zhihu">{{cite web |author1=品雪 |title=中文编码小知识 |url=https://zhuanlan.zhihu.com/p/22874005 |website=知乎专栏 |accessdate=2022-05-02 |language=zh}}</ref><ref name="cjkvi">{{cite book |title=CJKV Information Processing |author-first=Ken Roger |author-last=Lunde |author-link=小林劍 |publisher=[[O'Reilly Media|O'Reilly]] |edition=第二版 |date=2008年十二月 |isbn=978-0-596-51447-1 |url=http://oreilly.com/catalog/9780596514471/ |access-date=2022-05-02 |archive-date=2011-08-29 |archive-url=https://web.archive.org/web/20110829132935/http://oreilly.com/catalog/9780596514471/ }}</ref> === EUC-CN(机内码、内码) === 因为国标码和通用的ASCII码冲突,因此后续为了方便辨认单字节和双字节的编码,部分厂商在 ISO 2022 的基础上把双字节字符的二进制最高位都从 0 换成 1,即相当于把 ISO 2022 的每个字节都再加上128(十六进制为<code>0×80</code>)得到“机内码”表示,简称“内码”。把“区码”和“位码”分别加上160(十六进制为<code>0×A0</code>)也可以得到相同的机内码表示,这种格式也就是[[EUC]]。使用“GB 2312”编码的程序通常采用 EUC 储存方法,以便兼容于[[ASCII]]。这种格式称为'''EUC-CN'''。[[网页浏览器|浏览器]]编码表上的“GB2312”就是指这种表示法。 在 “GB 2312”编码内,高位字节使用了<code>0xA1—0xF7</code>(把01—87区的区号加160或<code>0×A0</code>),低位字节使用了<code>0xA1—0xFE</code>(把01—94加上160或<code>0×A0</code>)。非 ASCII 字符双字节编码范围为十六进制为 <code><A1 A1></code>-<code><FE FE></code>,十进制为 (161, 161) 至 (254, 254)。 例:“-{万}-”字(区位码 45-82)的 EUC 码十进制为:(45+160, 82+160) = (205, 242),十六进制为:'''<code><CD F2></code>'''。<ref name="zhongwenbianma-zhihu"></ref><ref name="cjkvi"></ref> === HZ === HZ 编码是由李楓峰在1988年发明的编码系统<ref name="hz">{{cite web|url=http://umunhum.stanford.edu/~lee/chicomp/HZ_spec.html|title=HZ — A Data Format for Exchanging Files of Arbitrarily Mixed Chinese and ASCII Characters|archive-url=https://web.archive.org/web/20051027040810/http://umunhum.stanford.edu/~lee/chicomp/HZ_spec.html|archive-date=2005-10-27}}</ref>。其目的是在7字节的限制下(如电子邮件)储存 “GB 2312”编码 的双字节字符。其在 ISO 2022 编码字符的前后分别加上转义字符<code>~{</code>(<code>7E 7B</code>)和<code>~}</code>(<code>7E 7D</code>)后,使用正常的ASCII转码变成 ASCII 字符。部分机器也可以接受使用 EUC-CN 编码的转义字符。 例:“-{万}-”字(区位码 45-82)的 ISO 2022 码十六进制为 <code><4D 72></code>。加上转义字符后,字符串变成<code>7E 7B '''4D 72''' 7E 7D</code>。HZ的编码即为<code>~{Mr~}</code>(<code>M</code>的ASCII码是<code>0×4D</code>,<code>r</code>的ASCII码是<code>0×72</code>)。<ref>{{cite web |title=HZ-GB-2312中文编码详解 - 云+社区 - 腾讯云 |url=https://cloud.tencent.com/developer/article/1467724 |website=cloud.tencent.com |accessdate=2022-05-02 |archive-date=2020-09-29 |archive-url=https://web.archive.org/web/20200929012950/https://cloud.tencent.com/developer/article/1467724 }}</ref>
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息