汉化一个英文版软件时,出现中文显示乱码的问题。在网上找了一些资料,按照下面的步骤进行修改后,解决了中文乱码问题。

第一种情况:(未亲测)

修改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程序的语言显示时就用中文(简体,中国)替换,这样的话,你的英文或者俄语就显示乱码了。

附图:如何解决汉化英文或翻译其他语言界面和RC出现乱码

实践:我用到的 比如ASCII和Unicode字符编码就不一样。RC文件默认是ASCII或(1251) ANSI 西里尔文,修改RC文件后,界面显示乱码,反过来直接修改界面后,RC文件显示乱码。查询原因得知:源文件RC是ASCII编码,另存为Unicode就两边一致了。仅需要修改当前文档,无需修改整个项目编码属性。

相关文章: