永发信息网

MFC Unicode字符编码使用困惑

答案:1  悬赏:80  手机版
解决时间 2021-02-24 21:08
修改 控制面板-区域语言选择“英语(美国)”后,MFC界面变“??”。查证是和工程属性采用多字节编码有关。改成unicode,由于涉及到tinyxml采用多字节。对外参数都是const char * ,自己用单字节到宽字符转换处理后造成XML中文读取显示是乱码,对于兼容宽字符的处理怎么做比较合适? TinyXML 内部解析字符串全是以 char* 类型来解析,只支持多字节编码如 UTF-8,ASCII,不支持 UNICODE 编码。如对中文的支持就比较古怪,如果 XML 以 UTF-8 格式保存,则设置“值”的时候必须自己把字符串转换为 UTF-8 再设置,而在取得值以后,则必须自己将它们从 UTF-8 转换成 UNICODE 或 ASCII,否则就是乱码。主要是 TinyXML 为了跨平台,所以没有像 MultiBytesToWideChar 和 WideCharToMultiBytes 这种函数的直接支持。不过如果是为了跨平台,这两个函数也可以考虑自己实现。
最佳答案
在编译选项里。 ASCII的话,可以使用MBCS来指定。 UNICODE的话,需要指定_UNICODE, UNICODE,另外代码中字符串常量用TEXT宏括起来。字符串函数也要改成支持unicode宽字符的函数如strcpy要改成lstrcpy等。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
赞颂军人的成语
谷掌柜粥真的能减肥吗
计算170+12×24÷8时,要先算()法,再算(),最后
现在西甲,英超,德甲,意甲,法甲这五个联赛
在鄂州万联证券办理的工行托管是哪家分行?
据说白马龙水库有人在那里游泳淹死了?知道情
后任屯村地址在什么地方,想过去办事
紫外线吸收剂对皮肤好不好?防晒产品的SPF代
苹果4电信版的一卡机500元是不是真的
nds系列有何不同??
沁园饮水机调温键闪不加热怎么回事
【They are ( ) about school lessons请问括
什么步芳草
请问2.1,2.4和2.7的海竿那个最好
谁能告诉我,江西财政局的电话是多少不?
推荐资讯
最新厦门大学会计专硕考研目录
链家房地产公司工作人员穿的工作服是公司发的
刘姓字辈 道德昭先圣 光明启自新
帮忙给个小男孩起名 父亲姓郑 (命里缺水,09
劳动法规对于医疗期的规定如何?对于无法胜任
川香居家常菜这个地址在什么地方,我要处理点
君豪酒业怎么去啊,有知道地址的么
黄伞畔我想知道这个在什么地方
那英唱过哪些好听的歌
被迫做皇帝却做的很好的皇帝有哪些?
家里装修后有芳香味,是苯污染吗,好恐怖
宣汉县城有农业银行几家地址
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?