在询问之前我发现了关于编码问题的一些问题,但它们不是我想要的。目前我有两种方法,我最好不要修改它们。文本文件编码问题
//FileManager.cs
public byte[] LoadFile(string id);
public FileStream LoadFileStream(string id);
他们正在为所有类型的文件正常工作。现在我有一个文本文件的ID(它肯定是一个.txt
文件),我想获得它的内容。我尝试了以下内容:
byte[] data = manager.LoadFile(id);
string content = Encoding.UTF8.GetString(data);
但显然它不适用于其他非UTF8编码。为了解决编码问题,我试图首先得到它的FileStream
,然后使用StreamReader
。
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks);
我希望这个霸主可以解决编码,但我仍然得到奇怪的内容。
using(var stream = manager.LoadFileStream(id))
using(var reader = new StreamReader(stream, true))
{
content = reader.ReadToEnd(); //still incorrect
}
也许我误解了detectEncodingFromByteOrderMarks
的用法?以及如何解决编码问题?
你是什么意思与“奇怪的内容”?你得到的内容是什么?它应该是什么样子?您是否使用十六进制编辑器查看了文件的第一个字节? – PVitt
你[无法检测到编码](http://stackoverflow.com/questions/90838/how-can-i-detect-the-encoding-codepage-of-a-text-file)你必须自己知道它。 –