gb2312不是不能表示繁体中文吗?


查了下gb2312只能表示简体中文(6000多个汉字),而gbk是gb2312的扩展(兼容gb2312),可以表示(2万多个汉字)。


 <html>
<head>
    <title></title>
    <meta charset="gb2312">
</head>
<body>
简体中文
繁體中文
</body>
</html>

运行上面代码的时候,发现 繁體中文 可以正常显示的,并不会乱码,哪里错了吗?

程序员 python php

【宅腐】曾铁可 10 years, 11 months ago

GB2312 GB2312

Skoll answered 10 years, 11 months ago

不能。繁体应当是Big5.
你到浏览器里面看看,当前是什么字符集。

这都有人选 answered 10 years, 11 months ago

摘自 Wiki GB 2312

GB 2312 或 GB 2312-80 是中华人民共和国国家标准 简体中文字符集

樱花吻鲑鱼 answered 10 years, 11 months ago

GB 2312字符集并未包括繁体字,只有少数几个特例,这在维基百科 GB 2312 上有提到,所以如果严格按照GB 2312编码存储,会造成字符数据丢失。但是在Windows平台上当Locale是中国大陆时用非Unicode字符集进行汉字编码,默认会采用的是兼容GB 2312的GBK或GB 18030编码,这两个字符集都包含繁体字。

鹿过_FIGO answered 10 years, 11 months ago

在 Windows 上,GB2312 是 cp936 的别名,它是 GBK 或者 GB18030 我不太清楚了。

在其它平台,GB2312 还是真正的 GB2312,比如你在 Linux 上拿 Python 解析国内声明为 GB2312 的网页时一遇到生僻字或者繁体字就会报错了。


 >>> print -l 简体中文 繁體中文| iconv -f utf-8 -t gb2312
�
 ��iconv: 未知 16 处的非法输入序列
>>> print -l 简体中文 繁體中文| iconv -f utf-8 -t gbk
�
 ��

前一命令在「體」字上转码出错了,后一命令成功执行。

alpent answered 10 years, 11 months ago

Your Answer