关闭

头痛的Unicode编码问题

472人阅读 评论(1) 收藏 举报

 为了研究MaNGOS工程,开始学习C++了,

一上来就碰到一个问题: 如何将MaNGOS项目中的英文字符串汉化成中文并正确地输出到魔兽世界客户端中正常显示?  (PS: 魔兽世界客户端中处理和显示字符使用的是UTF8编码.)

直接将源代码中定义的字符串常量的值修改成中文字符编译后得到的结果是: 所有包含有中文字符的字符串在客户端中完全没有任何显示.

偿试将工程的源代码以UTF8格式保存并编译,编译过程出现警告和错误信息

错误: XXXX行 常量中有换行符......

警告: XXXXX 行包含有在当前字符集(936简体中文)下无法表示的字符.......

修改了错误部分后,编译通过,在客户端测试却有这样的问题: 同一个头文件中定义的包含有中文字符的字符串常量,

在客户端中有的显示正常,有的却完全没有显示,还有一部分有显示,但是字符串被截短了,本来源代码中定义的是 "暴风城银行" , 客户端中却显示 "暴风城银"  , 最后一个字不见了.

将工程属性中字符集设置为" 使用Unicode字符集" , 并将包含了中文字符的源代码文件以UTF8格式保存,编译时提示满屏幕的错误信息, 需要手工添加多字节字符集到Unicode字符集的转换函数..  ... 这意味着要在源代码中数不清的字符串操作函数前面加转换函数.....上帝啊,杀了我吧!!!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:777次
    • 积分:15
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章存档
    阅读排行
    最新评论