1.windows的系统编码为Unicode,而Linux为UTF-8。这就导致使用在windows下使用api获取的字符串均是Unicode编码(例如文件名),而Linux下正好相反。
2.vs编译时默认使用Unicode而gcc使用UTF-8,但这里可以添加额外编译参数来指定编码。
windos下可以在 属性 -> C/C++ -> 命令行 添加 /utf-8
3.运行终端的编码,Window控制台的编码默认为GBK而Linux为UTF-8。这时如果编译时的编码和运行终端的编码不一致,在代码中固定输出中文时就会导致乱码(例如:cout<<"我爱中国!")。