Проблема с распечаткой в ​​текстовый файл - PullRequest
1 голос
/ 26 декабря 2008

Я полностью в тупике. У меня есть программа, которая извлекает информацию, хранящуюся в базе данных, назначает значения базы данных для соответствующего класса. У класса есть метод print, который печатает значения его полей. Пользователи вводят либо идентификатор заказа, либо диапазон дат, а затем находит эти заказы и распечатывает их в текстовый файл. Проблема, с которой я сталкиваюсь, заключается в том, что время от времени, в зависимости от того, какие идентификаторы и дату вы выбираете, текстовый файл будет выводить мусор следующим образом. "〢Ⱒⰱ 潋 瑲 刬 瑵 慨 湮 圬 扥 † '慍 歲 瑥 㔬 ㈶‸ ⁗ ㈱ 琰 瑓 敲 瑥 Ⱜ 汁 楳 Ɒ 䱉 㘬 㠰 ㌰" Я совершенно невежественен, потому что, когда я отлаживаю его, все значения правильно отображаются в классе, методе печати и наборе результатов. В чем может быть проблема? У кого-нибудь такое было с ними?

Операционная система - Windows Vista, я использую язык C #. Я использую класс StreamWriter с FileStream в качестве параметра.

Это происходит только с некоторыми заказами. Например, если я выберу 7 или 1-6, он будет работать нормально, но если я выберу 1-7, я получу странный язык. ????

Спасибо

Ответы [ 2 ]

4 голосов
/ 26 декабря 2008

Исходя из вашего комментария, блокнот пытается угадать кодировку файла. Посмотрите, как это происходит .

Вы должны четко указать кодировку файла.

Из документации :

StreamWriter по умолчанию использует экземпляр UTF8Encoding, если не указано иное. Этот экземпляр UTF8Encoding создается без метки порядка байтов (BOM), поэтому его метод GetPreamble возвращает пустой байтовый массив. Чтобы создать StreamWriter с использованием кодировки UTF-8 и спецификации, рассмотрите возможность использования конструктора, который определяет кодировку, например StreamWriter (String, Boolean, Encoding).

2 голосов
/ 26 декабря 2008

, что выглядит как плохое преобразование в / из Юникода или переменная культуры, установленная и не примененная должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...