C# WriteAllBytes 忽略字符编码

C# WriteAllBytes ignores character encoding

我正在使用以下代码:

File.WriteAllBytes("c:\test.xml", Encoding.UTF8.GetBytes("THIS IS A TEST"))

理论上应该写一个UTF8文件,但我只得到一个ANSI文件。我也试过这个只是为了特别冗长;

File.WriteAllBytes("c:\test.xml", ASCIIEncoding.Convert(ASCIIEncoding.ASCII, UTF8Encoding.UTF8, Encoding.UTF8.GetBytes("THIS IS A TEST")))

还是一样的问题。

我正在通过加载正确读取格式的 TextPad 来测试输出的文件(我使用示例文件进行了测试,因为我知道这些东西有时会有点奇怪)

WriteAllBytes 不是 忽略 编码 - 而是:你已经做了 编码,当你调用 GetBytesWriteAllBytes 的全部意义在于它 写入字节 。字节 没有 编码;相反:编码是从文本(此处为string)转换为字节(此处为byte[])的过程。

UTF-8 与所有 ASCII 字符的 ASCII 相同 - 即 0-127。所有 "THIS IS A TEST" 都是纯 ASCII,因此 UTF-8 和 ASCII 是相同的。