朱朱你堕落了 发表于 2019-9-5 20:14

汉字在内存中如何表现?

MessageBox(NULL, _T("AAA内容"), _T("BBB标题"), MB_OK);


汉字"标题"按两种方式编译:

如果按多字符集编译。如下:


如果按Unicode编译如下:



我去,,,汉字,无论是使用ansi还是unicode编译,不应该都是一样的吗?
怎么回事呢。

jim19 发表于 2019-9-5 20:27

汉字ansi 就是gbk
unicode 是另一套编码了。不一样的

fanvalen 发表于 2019-9-5 20:35

怎么可能一样 ascii仅含一部分汉字unicode是扩展汉字编码集,unicode用了15位来表示,ascii才8位

丶威武你梦哥 发表于 2019-9-5 21:33

汉字在内存多种表现形式,也就是储存为多种字符编码。
最常见的就是GBK、GB2312,这俩种编码通过改写拓展ASCII表的高128位来表示,一般2字节表示一个汉字,其他象形文字的国家也都是这么干的,也就是为什么,有的软件在中国正常,拿到韩国日本就乱码。

还有一种是UNICODE,其中UNICODE有多种标准:utf8 utf16 utf32 3种标准用于表示同一个字的十六进制也不同,windows中最常用的是utf16具体可以百度搜索一下。
一下就明白了。

ee789852 发表于 2019-9-5 21:39

啧啧啧,太深奥了

啊哈啊 发表于 2019-9-5 22:20

编码规则不一样。
页: [1]
查看完整版本: 汉字在内存中如何表现?