Code::Blocks(MinGW)编译资源文件时中文乱码的解决方案及补充

前言

今天编译了一个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

Code::Blocks(MinGW)编译资源文件时中文乱码的解决方案及补充_第1张图片

 

使用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 编译资源文件时中文乱码的解决方案》 中的办法操作后就可以了无需另外修改编码

你可能感兴趣的:(makefile,语言,output,google,dll,file)