汉化一个英文版软件时,出现中文显示乱码的问题。在网上找了一些资料,按照下面的步骤进行修改后,解决了中文乱码问题。
第一种情况:(未亲测)
修改RC文件中的英文为中文,界面显示乱码,按照下面的步骤解决了。
建立两个MFC工程,一个英文版,一个中文版,然后对比两个工程的rc文件;
1、改一下
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
2、改一下
VALUE "Translation"
3、改一下
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
4、重新组建
5、完成。
第二种情况:(亲测ok)
按照第一种情况的步骤修改RC文件后,在一个工程中,有四个对话框,其中一个对话框正确显示中文,其他三个界面中仍然出现中文乱码的问题。
按照下面步骤操作后,解决该问题。
1. 切换到资源试图页面
2. 在【Dialog】目录下,选中对话框,右键菜单属性。
3. 在属性窗口中,将语言改成 “中文(中国)”。
4. 保存、重新生成:
原文地址:https://www.cnblogs.com/xiaoyusmile/p/3520731.html
代码页 Code Page 详细说明:http://www.360doc.com/content/12/0324/12/9290626_197221601.shtml
936 简体中文
1252ANSI拉丁文-英文
1251 ANSI 西里尔文
也可百度查询 编码格式相关内容。
注意下:以上方法是汉化,换成将中文翻译成其他语言,方法相似。倘若你是中文系统下,汉化英语或者俄语,如果以上方法均不能解决乱码问题,那就要考虑是否当前RC文件的编码格式了,另存为修改编码格式就可以了。
原因:若系统区域是中国,语言是简体中文,那么在非Unicode程序的语言显示时就用中文(简体,中国)替换,这样的话,你的英文或者俄语就显示乱码了。
附图:
实践:我用到的 比如ASCII和Unicode字符编码就不一样。RC文件默认是ASCII或(1251) ANSI 西里尔文,修改RC文件后,界面显示乱码,反过来直接修改界面后,RC文件显示乱码。查询原因得知:源文件RC是ASCII编码,另存为Unicode就两边一致了。仅需要修改当前文档,无需修改整个项目编码属性。