Ton*_*ham 3 c# encoding ascii utf-8 system.io.file
我正在使用以下代码:
File.WriteAllBytes("c:\\test.xml", Encoding.UTF8.GetBytes("THIS IS A TEST"))
Run Code Online (Sandbox Code Playgroud)
理论上应该写一个UTF8文件,但我只得到一个ANSI文件.我也尝试过这只是特别冗长;
File.WriteAllBytes("c:\\test.xml", ASCIIEncoding.Convert(ASCIIEncoding.ASCII, UTF8Encoding.UTF8, Encoding.UTF8.GetBytes("THIS IS A TEST")))
Run Code Online (Sandbox Code Playgroud)
尽管如此,问题仍然存在.
我正在测试输出的文件,通过加载TextPad正确读取格式(我用样本文件测试,因为我知道这些东西有时可能有点奇怪)
WriteAllBytes并没有忽略编码 - 而是:当你调用时,你已经完成了编码GetBytes.整个问题WriteAllBytes是它写入字节.字节没有编码; 相反:编码是从文本(string此处)转换为字节(byte[]此处)的过程.
对于所有ASCII字符,UTF-8与ASCII相同 - 即0-127.所有"THIS IS A TEST"都是纯ASCII,因此UTF-8和ASCII是相同的.