0
我有以下的代碼:的StreamReader未能檢測BOM
using (StreamReader sr = new StreamReader(path, Encoding.GetEncoding("shift-jis"), true)) {
mCertainFileIsUTFFormat = !sr.CurrentEncoding.Equals(Encoding.GetEncoding("shift-jis"));
mCodingFromBOM = sr.CurrentEncoding;
String line = sr.ReadToEnd();
return line.Split('\n');
}
基本上讀取文件,並假設移位-JIS如果沒有BOM。唉,無論如何,這種方法總是返回Shift-JIS編碼,即使文件中有一個BOM。我在這裏做錯了什麼,或者有一個已知的問題?我總是可以打開文件的二進制,做好自己的工作,但是這是應該做我想要的東西:)
請確保調用'任何形式的Read' - 它不會檢測到編碼*之前*閱讀。 [CurrentEncoding](http://msdn.microsoft.com/en-us/library/system.io.streamreader.currentencoding%28v=vs.110%29.aspx) - 「在第一次調用之後,值可能不同StreamReader的任何Read方法,因爲編碼自動檢測不會完成,直到第一次調用Read方法。「 – 2014-09-22 23:46:04
嗯。讓我嘗試一下。 :) – 2014-09-22 23:47:10
你先生賺1天的互聯網。做出答案,我會把它解決。 – 2014-09-22 23:48:35