У меня есть следующий фрагмент кода: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');
}
В основном чтении файла и при условии, Shift-JIS, если нет BOM. Увы, этот метод всегда, несмотря ни на что, возвращает кодировку Shift-JIS, даже если у данного файла есть спецификация. Я делаю что-то неправильно здесь или, возможно, есть известная проблема? Я всегда мог открыть файл двоичный файл и делать работу самостоятельно, но это должен делать то, что я хочу :)
Обязательно позвоните 'Read' любого типа - он не обнаружит кодировку * перед * чтением. [CurrentEncoding] (http://msdn.microsoft.com/en-us/library/system.io.streamreader.currentencoding%28v=vs.110%29.aspx) - «Значение может отличаться после первого вызова любой метод Read StreamReader, поскольку автоопределение кодирования не выполняется до первого вызова метода Read. " –
Хм. позвольте мне попробовать. :) –
Вы сэр зарабатываете +1 интернетов за день. Сделайте этот ответ, и я постараюсь его решить. –