2016-03-24 2 views
2

Я извлекаю некоторые значения из файла ASCII в Python, который я хочу использовать для меток на графике, используя matplotlib. Таким образом, одна из строк - µm/m. Выделенное значение внутри строки Python равно \xb5m/m, но с использованием отладчика внутри Eclipse оно выглядит как �m/m.Работа с математическими специальными символами в Python

Так при прохождении метки к Matplotlib, он показывает мне следующее сообщение об ошибке:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 21: ordinal not in range(128) 

Так что, похоже, как проблема кодирования. Я попробовал, добавив следующую строку в верхней части моего класса:

# -*- coding: utf-8 -*- 

Unfortunatelly это не решает проблему. Я что-то упускаю?

ответ

6

Это латино-1 кодироваться не UTF-8, вы можете декодировать:

In [41]: s = "\xb5m/m" 

In [42]: print(s) 
�m/m 

In [43]: print(s.decode("latin-1")) 
µm/m 
+1

Нет проб, вы радушны. –

Смежные вопросы