Странный символ "Â" перед градусом символа Цельсия "° C" - PullRequest
4 голосов
/ 10 сентября 2009

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

После извлечения всех моих данных я попытался подготовить их для импорта в Excel. Мне пришлось выбрать файл с разделителями табуляции, потому что некоторые из моих данных содержат запятые (повезло мне!).

Проблема, с которой я сталкиваюсь, очень странная, после того, как я импортирую данные в Excel.

Данные столбца в Notepad ++ выглядят так:

Total Suspended Solids @105°C   

Данные ячейки Excel выглядят так:

Total Suspended Solids @105°C

Я не понимаю, почему это происходит. Это как-то связано с тем, как представлен символ градусов?

p.s. Символы в этом вопросе являются прямым копированием и вставкой

Ответы [ 3 ]

7 голосов
/ 10 сентября 2009
  1. (Скорее всего) Excel интерпретирует ваши текстовые данные как latin-1 или windows-1252, а не UTF-8. «°» - это то, что вы получаете, если вы берете байты UTF-8 для «°» (0xc2 0xb0) и интерпретируете каждый байт как символ латинского-1 или windows-1252. Есть ли опция для ввода кодировки при импорте?
  2. (Менее вероятно) Excel делает правильные вещи, но вы дважды кодируете свои данные (кодируете как UTF-8, затем интерпретируете его как 8-битное кодирование и снова кодируете как UTF-8 или любая другая кодировка Unicode). Notepad ++ доказательство против этого.
3 голосов
/ 10 сентября 2009

Я не совсем уверен, но я думаю, что Excel ожидает кодировки символов Windows-1252, поэтому убедитесь, что вы создали свой текстовый файл, используя Encoding.GetEncoding("Windows-1252").

Например:

using (var writer = new StreamWriter(fileName,false,Encoding.GetEncoding("Windows-1252"))
{
 ....
}
0 голосов
/ 08 мая 2013

Вы можете использовать спецификацию UTF-8 для своего файла.

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