Нет такого понятия, как текст без кодировки. Это похоже на желание сохранить абстрактное изображение на диск без указания какого-либо формата изображения. (Даже «raw» - это своего рода кодировка изображений - вам нужно договориться о способе передачи ширины, высоты, порядка байтов, глубины цвета.)
Я предлагаю вам просто исправить одну кодировку (например, Encoding.Unicode
или Encoding.UTF8
) и написать текст таким образом.
Что касается того, почему BinaryWriter.Write(text)
ставит "специальные символы" в начале каждой строки, проверяли ли вы документацию , что она делает?
Записывает строку с префиксом длины в этот поток в текущей кодировке BinaryWriter и перемещает текущую позицию потока в соответствии с используемой кодировкой и конкретными символами, записываемыми в поток.
и
Строка с префиксом длины представляет длину строки, добавляя к строке один байт или слово, содержащее длину этой строки. Этот метод сначала записывает длину строки в виде целого числа без знака в кодировке UTF-7, а затем записывает это количество символов в поток, используя текущую кодировку экземпляра BinaryWriter.
Итак, вы видите префикс длины ... но тогда он будет использовать любую кодировку, установленную для BinaryWriter
.