Функция StreamWriter.WriteLine () генерирует символ «В» - PullRequest
0 голосов
/ 21 июня 2011

Я пишу несколько строк в файле Excel. Иногда звонок на

StreamWriter.WriteLine()  

Функция неожиданно создает символ "Â".

Есть идеи почему?

Обновление

код:

StreamWriter writer = new StreamWriter(File.Create(outFile)); 
string headerline = ""; 
foreach (DataColumn colum in reportContents.Columns) 
{ 
    headerline = headerline + '"' + row[colum].ToString() + '"' + ',';
} 
writer.WriteLine(headerline);

вывод: Личная защита | Экономия после выхода на пенсию | Пенсия до выхода на пенсию | Планирование налогов и имущества

Ожидаемый результат: личная защита | Экономия после выхода на пенсию | Пенсия до выхода на пенсию | Планирование налогов и имущества

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

StreamWriter writer = новый StreamWriter (File.Create (outFile), Encoding.Default);

shuvra

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Это на самом деле не создание Â символа - это просто запись данных в другой кодировке.Если вы посмотрите на перегрузки в конструкторе StreamWriter (http://msdn.microsoft.com/en-us/library/system.io.streamwriter.aspx), вы можете указать, в какую кодировку вы хотите, чтобы StreamWriter записывал свои данные.

В случае, если вы раньше не имели дело с кодировкой: Джоэл написал хорошую статью об этом на http://www.joelonsoftware.com/articles/Unicode.html

1 голос
/ 28 октября 2013

Набор символов вашего кода должен быть "utf-8".

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