在开发的时候,遇到了这样的问题:我开发了一个工具用来生产另一个软件需要的源文件(.c文件),发现使用File类的静态方法WriteAllText保存的文件在VS中打开中文注释变成了乱码,经过查询,发现问题是WriteAllText的默认保存编码不可以,必须采用UTF-8的编码方式,也就是在WriteAllText的第三个参数采用Encoding.UTF-8。
奇怪的是生成的C++源文件采用Encoding.UTF-8参数却会生成乱码,猜想是VS在C++的解码用的格式不一样?经过尝试,发现第三个参数应该采用Encoding.Default就可以了!