Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

windows 电脑区域设置为中国大陆时,其编码不应该用简单的 GBK 说明 #11

Open
Mq-b opened this issue Jul 22, 2024 · 2 comments

Comments

@Mq-b
Copy link
Contributor

Mq-b commented Jul 22, 2024

https://parallel101.github.io/cppguidebook/unicode/#_8

原文:

对于中国区 Windows 来说,区域设置默认是 GBK。

GBK 只为“技术规范指导性文件”,不属于国家标准。

也就是严格意义来说,它并不是具体编码,虽然大家平时都这样说。

国家质量技术监督局于2000年3月17日推出了GB 18030-2000标准,以取代GBK。GB 18030-2000除保留全部GBK编码汉字,在第二字节把能使用范围再度进行扩展,增加了大约一百个汉字及四字节编码空间,但是将GBK作为子集全部保留。请参看GB 18030

根据微软资料,GBK是对GB2312-80的扩展,也就是CP936字码表(Code Page 936)的扩展(之前CP936和GB 2312-80一模一样),最早实现于Windows 95简体中文版。虽然GBK收录GB 13000.1-93的全部字符,但GBK是一种编码方式并向下兼容GB2312;而GB 13000.1-93等同于Unicode 1.1是一种字符集,它的几种编码方式如UTF8UTF16LE等,与GBK完全不兼容。

windows 中国大陆区域,输入 chcp 均会得到:
活动代码页: 936


源自维基百科,总而言之,提到了

gb2312 -> gbk -> gb18030。

编码事情多,看情况描述吧。

@archibate
Copy link
Contributor

archibate commented Jul 22, 2024 via email

@Mq-b
Copy link
Contributor Author

Mq-b commented Jul 22, 2024

其实我很早之前想过这个问题,微软从始至终也没说过 chcp 得到 936,到底代表什么编码,从来没说过。
就是有这么个号码而已,而这个号码的意思还一直在变动,如同我上面提到的那样,很乐。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants