我正在使用ASCII
编码创建一个文件,但是当我测试获取该文件的编码类型时,它正在返回UTF8Encoding
。
任何人都可以解释原因或弄清楚我的错误吗?
CODE:
创建文件:
FileStream _textStream = File.Open("CreateAsciiFile.txt", FileMode.Create, FileAccess.Write);
StreamWriter _streamWriter = new StreamWriter(_textStream, System.Text.Encoding.ASCII);
Byte[] byteContent = BtyeTowrite(); // This returns the array of byte
foreach(var myByte in byteContent)
_streamWriter.Write(System.Convert.ToChar(myByte));
阅读文件:
StreamReader sr = new StreamReader(@"C:\CreateAsciiFile.txt",true);
string LineText= sr.ReadLine();
System.Text.Encoding enc = sr.CurrentEncoding;
这里enc给出UTF8Encoding
......但我期待ASCII
???
答案 0 :(得分:3)
在查询编码之前,您需要先阅读阅读器。所以在致电sr.CurrentEncoding
之前尝试阅读一些东西。 StreamReader会查看尝试猜测编码的第一个字节,因为ASCII没有BOM,因此可能无法识别,您可能会得到错误的结果。例如,ASCII编码文件与ISO-8859-1
编码文件之间没有差异(在二进制级别)。
答案 1 :(得分:1)