汉字在内存中如何表现?
MessageBox(NULL, _T("AAA内容"), _T("BBB标题"), MB_OK);汉字"标题"按两种方式编译:
如果按多字符集编译。如下:
如果按Unicode编译如下:
我去,,,汉字,无论是使用ansi还是unicode编译,不应该都是一样的吗?
怎么回事呢。 汉字ansi 就是gbk
unicode 是另一套编码了。不一样的 怎么可能一样 ascii仅含一部分汉字unicode是扩展汉字编码集,unicode用了15位来表示,ascii才8位 汉字在内存多种表现形式,也就是储存为多种字符编码。
最常见的就是GBK、GB2312,这俩种编码通过改写拓展ASCII表的高128位来表示,一般2字节表示一个汉字,其他象形文字的国家也都是这么干的,也就是为什么,有的软件在中国正常,拿到韩国日本就乱码。
还有一种是UNICODE,其中UNICODE有多种标准:utf8 utf16 utf32 3种标准用于表示同一个字的十六进制也不同,windows中最常用的是utf16具体可以百度搜索一下。
一下就明白了。 啧啧啧,太深奥了 编码规则不一样。
页:
[1]