Я пытаюсь добавить строку base64 в существующий файл. Вот мой код:Строка кодировки StreamWriter некорректно
StreamWriter output = new StreamWriter(file, true, Encoding.ASCII);
output.WriteLine(output.NewLine + str);
Здесь file
это путь к файлу.
По какой-то причине существует один конкретный файл (файл .cs, если это имеет значение), где фактический текст, который добавляется, представляет собой строку китайских символов. Он работает как ожидалось для всех других файлов, которые я тестировал.
В строках, которые вы пытаетесь напечатать, есть символы, отличные от ASCII? То есть любой символ с десятичным значением> 127? Например, имеет ли он маркер порядка байтов Unicode (http://en.wikipedia.org/wiki/Byte_order_mark)? – adv12
Что такое 'str' в этом случае? Возможно, вы переписываете существующий файл без усечения, а данные - это то, что уже было там? –
Почти гарантировано, что вы испортили файл, используя неправильную ('ASCII') кодировку. Убедитесь, что файл не UTF-8 (или некоторая другая кодировка). – xxbbcc