目前,我正在为中国客户开发应用程序。中国客户大多在其OS编码中切换到GB2312语言。我需要编写一个文本文件,使用GB2312进行编码。
std::string Utils::ToString(CString& cString) {
/* Will not work correctly, if we are compiled under unicode mode. */
return (LPCTSTR)cString;
}
令我惊讶的是。它只是有效。我以为我至少需要使用wstring。我试着做一些调查。
这是生成的MBCS.txt。
alt text http://sites.google.com/site/yanchengcheok/Home/stackoverflow0.PNG
我的问题是:
答案 0 :(得分:0)
关于1.当您按照较小的单位序列化单位时,字节顺序是您遇到的问题(即按照八位字节序列化单位)。我远不是CJK编码的专家,但在我看来,GB2112是一个编码字符集,可以与几种编码方案一起使用。维基百科页面中引用的用于GB2112(ISO 2022,EUC-CN和HZ)的编码方案都是以八位字节的形式定义的。如果序列化为八位字节,则没有字节序问题。
将此与Unicode编码方案进行对比:UTF-8是根据八位字节定义的,并且在序列化为八位字节时没有字节序问题,UTF-16是根据seizets定义的,如果序列化为八位字节,则必须指定字节序,UTF- 32是按32位单位定义的,如果序列化为八位字节,则必须指定字节顺序。