Простая проблема с Chr () и выходным файлом - PullRequest
0 голосов
/ 19 октября 2011

Я нахожусь на vb .net (2005 и 2010) и имею нежелательный вывод при записи символов ascii в файл.

На консоли отладки я получаю (chr (128, chr (147), chr (130)):

€
“
‚

В файле я получаю:

€
â€
‚

Это какой-то мусор? если их нужно удалить, строка ДОЛЖНА начинаться с €, а остальные.

Я - System.IO.StreamWriter, и это метод .WriteLine, с очисткой и без нее.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

Ну, StreamWriter использует UTF-8 в качестве кодировки, если вы не укажете что-либо еще.

Не совсем понятно, что вы используете для чтения файла - но есливы можете заставить его читать файл как UTF-8, он вполне может показать то, что вы ожидали.

Лично я бы не стал использовать Chr, отдав предпочтение более портативному ChrW, который не зависит оттекущие настройки потока для кодировки по умолчанию.

Теперь, что касается файла , который должен содержать - это действительно зависит от того, что будет прочитано.Я вообще думаю, что UTF-8 - это хорошая кодировка для использования, но она явно не та, которую вы ожидали ...

0 голосов
/ 19 октября 2011

Вероятно, это связано с кодировкой. У меня было нечто подобное, когда я проверял файл bat в tfs. При проверке файла была установлена ​​кодировка, которая помещала специальный символ в первый символ файла, который вызывал и ошибку при запуске файла bat.

Надеюсь, это поможет ...

...