Чтение / запись данных POP3 - PullRequest
0 голосов
/ 07 февраля 2011

Я получаю данные с POP3-сервера и первоначально я использовал StreamWriter для записи данных (в виде текста) в файл на диске, но при таком подходе некоторые символы не могут быть декодированы. Все в порядке, если я использую BinaryWriter и метод BinaryWriter.Write (Byte []). Насколько я знаю, StreamWriter записывает текстовые символы с использованием указанной кодировки (определенные байты могут быть изменены в течение всего процесса), а BinaryWriter записывает исходные байты в файл, это правильно?

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

Если у вас есть байты для начала и вы хотите перенести их в файл, я бы рекомендовал не использовать BinaryWriter или StreamWriter - просто используйте Stream (например,FileStream).BinaryWriter полезен, когда вы хотите записать примитивы и т. Д. В поток - но если вы просто хотите вывести последовательность байтов, Stream делает все, что вы хотите.Вы, конечно, не должны использовать StreamWriter для передачи непрозрачного двоичного содержимого;трактуйте текст как текст, а двоичные данные - как двоичные, и переводите между ними только тогда, когда вы уверены в том, что делаете (например, двоичные данные на самом деле текст в определенной кодировке).

0 голосов
/ 07 февраля 2011

можете ли вы показать нам, как вы открываете StreamWriter с указанием кодировки.Я считаю, что вы должны использовать правильную кодировку, которая сейчас используется, вероятно, неправильно.

...