1 Visual Studio项目以utf-8编码格式保存源代码文件

默认情况下,Visual Studio项目工程中的代码文件默认使用本地编码,对于中文环境来说是GB2312。如果你的项目需要跨平台编译,如果代码文件的编码格式是ANSI编码,则会在编译时出现乱码或者其他无法预知的问题。

1.1 以UTF-8编码保存源代码文件

我们需要的是在Visual Studio中新建.h.hpp.c.cpp文件时自动使用UTF-8编码,而UTF-8又分为UTF-8 With No Bom和UTF-8 With Bom。

  • UTF-8 With No Bom:无签名的UTF-8编码格式在写入文件时不需要在文件头部写入文件的编码格式,也就是不带BOM(Byte Order Mark 字节流标记)信息,它是让应用程序识别所使用的文件编码的
  • UTF-8 With Bom:带签名的UTF-8编码格式在写入文件时需要写入BOM信息,而解析器读取该文件时可以直接根据签名信息判断出其使用了UTF编码文件,而未签名的文件解析器需要根据文件内容的编码来进行自动识别,所以说带签名的更加容易被解析器以正确的方式进行文件解析

Visual Studio支持EditorConfig功能,可以通过.editorconfig配置文件指定编辑器的格式、编码等特性。

首先在项目的源代码根目录下新建一个名为.editorconfig文本文件,Visual Studio会按照这个文本文件规定的特性保存这个文件夹下的代码文件。

(1)如果你想要你的代码文件保存为UTF-8 With No Bom格式

则在.editorconfig中写入以下内容

[*.{h,hpp,c,cpp}]
charset = utf-8

(2)如果你想要你的代码文件保存为UTF-8 With Bom格式

则在.editorconfig中写入以下内容

[*.{h,hpp,c,cpp}]
charset = utf-8-bom

一般推荐使用UTF-8 With Bom编码格式,这样代码不管在linux上编译或者是在Android上交叉编译都不会有问题。

参考