windows操作系统下MinGW用g++编译含有中文的C源程序。
新建一个helloCpp.cpp文件,用notepad++软件打开,编辑内容为:
#include <iostream>
using namespace std;
int main()
{
cout<<"你好,世界!"<<endl;
cout<<"使用C++ 11标准。"<<endl;
retrun 0;
}
将此文件编码格式设置为 windows平台UTF-8(无BOM)。因为GCC默认支持的源文件编码为UTF-8.
但是windows操作系统默认的中文编码格式为GBK,直接在cmd命令行下g++ -o helloCpp helloCpp.cpp生成的helloCpp.exe是乱码的。
用G++编译时必须加上编译参数-finput-charset=UTF-8 -fexec-charset=GB2312
这两个参数-finput-charset=UTF-8指定*.c源文件的编码格式为UTF-8,-fexec-charset=GB2312指定生成的二进制exe可执行文件内中文信息内码为GB2312,GBK可以直接显示GB2312信息。GBK向下兼容GB2312。gcc进行编译链接时会自动准换中文的内码格式。
命令为g++ -finput-charset=UTF-8 -fexec-charset=GB2312 -o helloCpp helloCpp.cpp
编译参数-std=c++11则启用C++11标准。。