Python3 проблема с юникодом - PullRequest
1 голос
/ 24 апреля 2020

Я не могу получить представление Unicode символов utf-8 на рабочем сервере, хотя это хорошо работает на рабочей станции разработки.

Когда я использую Python 3.6.9 [G CC 8.3.0] на linux (сервер Ubuntu).

>>> str('\u0394')
'\u0394'

>>>print('\u0394')               
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'latin-1' codec can't encode character '\u0394' in position 0: ordinal not in range(256)

Когда я использую Python 3.6. 5 [G CC 4.2.1] на darwin (Ma c OS)

>>> str('\u0394')
'Δ'

>>> print('\u0394') 
Δ

Похоже, что на сервере Ubuntu что-то не работает, как str() предполагается преобразовать в юникод в Python 3. Однако вполне возможно, что в версии 3.6.9 все работает иначе, чем в 3.6.5. Любые советы о том, как я могу добраться до сути этого?

1 Ответ

0 голосов
/ 25 апреля 2020

Я нашел исправление, исправляющее локаль, чтобы соответствовать .UTF-8, как описано в здесь :

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Ранее /etc/default/locale имел только en_US. Я также изменил его в файле локали, но, поскольку в данный момент я не могу перезагрузиться, приведенные выше команды являются лучшим решением для меня.

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