前言
今天编译了一个DLL文件,并想为它添加一点版本信息的时候发现,所有输入的中文都变成了乱码~
老规矩叫出Google搜寻了一番
最后找到了一篇《MinGW 编译资源文件时中文乱码的解决方案》 提出了解决办法,但是,完全按照上面的操作后,还是有乱码~
正文
Code::Blocks(MinGW)编译资源(*.rc)时出现中文乱码——准确的说是Windres.exe出现了问题
解决办法就是在Windres.exe中设置语言编码格式,即-l "LANGUAGE 4,2"
使用Code::Blocks的话 :
右键RC文件→属性...→高级→勾选 使用自定义命令编译这个文件
添加命令:$rescomp -i $file -l "LANGUAGE 4,2" -J rc -o $resource_output -O coff $res_includes
使用MinGW或者直接用Makefile 的话:
按以下命令方式改吧。
windres -i test.rc -l "LANGUAGE 4,2" -J rc -o test_res.o -O coff
补充
在完成上面的操作后,我发现我编译出来的还是乱码
看来还有问题——文本编码(本人Code::Blocks默认使用的是UTF-8)
上面的操作是设置了*.rc语言编码格式,自然它就会把*.rc当成此编码格式格式编译,但是*.rc本身的文本编码格式不符合前面设置的要求时,乱码还是会出现了
应此,要把*.rc的文本格式(本人原来默认使用的是UTF-8)设置成系统默认的(WINDOWS-936)
在Code::Blocks中编辑 ->文本编码->系统默认,保存,再编译,剩下的自己看吧
P.S 用记事本默认编辑保存的*.rc的文件,按照《MinGW 编译资源文件时中文乱码的解决方案》 中的办法操作后就可以了无需另外修改编码