Вопрос по BinaryWriter c#
Использую метод Write(txt) для записи в текстовый файл, всё норм, только первым символом всегда стоит какая-то козявка(), её точно нету в строке, которую я даю на запись. Подскажите как избавиться от этой мерзости?
Использую метод Write(txt) для записи в текстовый файл, всё норм, только первым символом всегда стоит какая-то козявка(), её точно нету в строке, которую я даю на запись. Подскажите как избавиться от этой мерзости?
Козявка это byte order mark BOM
Нужно создать кодировку которая исключает использование BOM для UTF8. А потом с ней открыть StreamWriter.
А вот пример, правда на VB но суть понятна.
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using
Ну либо указать кодировку CP1251 и писать по одному байту на букву, там не будет BOM.
BinaryWriter - не для записи обычно текста
Надо записывать массив байт тогда в файл
.Write(buffer, 0, buffer.Length);
А если обычную строку писать, то там системные байты в начале