2015-01-12 4 views
0

Я пытаюсь добавить строку base64 в существующий файл. Вот мой код:Строка кодировки StreamWriter некорректно

StreamWriter output = new StreamWriter(file, true, Encoding.ASCII); 
output.WriteLine(output.NewLine + str); 

Здесь file это путь к файлу.

По какой-то причине существует один конкретный файл (файл .cs, если это имеет значение), где фактический текст, который добавляется, представляет собой строку китайских символов. Он работает как ожидалось для всех других файлов, которые я тестировал.

+1

В строках, которые вы пытаетесь напечатать, есть символы, отличные от ASCII? То есть любой символ с десятичным значением> 127? Например, имеет ли он маркер порядка байтов Unicode (http://en.wikipedia.org/wiki/Byte_order_mark)? – adv12

+0

Что такое 'str' в этом случае? Возможно, вы переписываете существующий файл без усечения, а данные - это то, что уже было там? –

+1

Почти гарантировано, что вы испортили файл, используя неправильную ('ASCII') кодировку. Убедитесь, что файл не UTF-8 (или некоторая другая кодировка). – xxbbcc

ответ

0

После нескольких предложений в комментариях я заменил на кодировку файла, которую я просматриваю, используя ответ 2Toad here. Это решило проблему.

Смежные вопросы