Кодирование символа плюс-минус в выходах UTF-8 с дополнительными символами - PullRequest
0 голосов
/ 22 октября 2018

Я пытался закодировать символ плюс-минус в Python 2.7 между двумя числами (например, 10 ± 8,9).

При просмотре документации по питону я обнаружил, что мне нужно кодировать символ плюс-минус в UTF-8, а не в стандартном ASCII.

Вот короткий пример, освещающий проблему, которую я обнаружил, взяв значение Unicode для плюс-минус из Википедии

plusminus = u'\u00b1'
print(plusminus)             #All seems fine, but this is in ASCII format
±

plusminus.encode('utf-8')    #Two symbols are outputted. This is strange!
'\xc2\xb1'

print(a.encode('utf-8'))     #Yep. two symbols were encoded from one Unicode
±

print(u'\xb1')               #Parital solution is to accept latter symbol
±

Несмотря на то, что я решил проблему (отсеиваю), взявпоследний символ, это кажется странным, что кодирование будет выводить два символа.Я предполагаю, что я делаю что-то не так, но я не могу найти других примеров этого.

Вот вопросы, которые у меня есть:

1) Что я делаюздесь не так?

2) Есть ли способ кодировать символы (например, плюс-минус) в UTF-8 напрямую без дополнительных символов?

1 Ответ

0 голосов
/ 22 октября 2018

Я нашел основную причину моей проблемы.Это было вызвано тем, что терминал, который я использовал, имел кодировку 'iso-8859-15' .Изменение кодировки, используемой в python, для соответствия кодировке терминала устранило эту проблему и вывело ± правильно.

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