MFC Unicode字符编码使用困惑

修改控制面板-区域语言选择“英语(美国)”后,MFC界面变“??”。查证是和工程属性采用多字节编码有关。改成unicode,由于涉及到tinyxml采用多字节。对外参数都... 修改 控制面板-区域语言选择“英语(美国)”后,MFC界面变“??”。查证是和工程属性采用多字节编码有关。改成unicode,由于涉及到tinyxml采用多字节。对外参数都是const char * ,自己用单字节到宽字符转换处理后造成XML中文读取显示是乱码,对于兼容宽字符的处理怎么做比较合适? TinyXML 内部解析字符串全是以 char* 类型来解析,只支持多字节编码如 UTF-8,ASCII,不支持 UNICODE 编码。如对中文的支持就比较古怪,如果 XML 以 UTF-8 格式保存,则设置“值”的时候必须自己把字符串转换为 UTF-8 再设置,而在取得值以后,则必须自己将它们从 UTF-8 转换成 UNICODE 或 ASCII,否则就是乱码。主要是 TinyXML 为了跨平台,所以没有像 MultiBytesToWideChar 和 WideCharToMultiBytes 这种函数的直接支持。不过如果是为了跨平台,这两个函数也可以考虑自己实现。 展开
 我来答
匿名用户
2014-02-28
展开全部
在编译选项里。 ASCII的话,可以使用MBCS来指定。 UNICODE的话,需要指定_UNICODE, UNICODE,另外代码中字符串常量用TEXT宏括起来。字符串函数也要改成支持unicode宽字符的函数如strcpy要改成lstrcpy等。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式