В Python интерактивном режиме:python2.7 выполняет операторы, заданные в виде строки команды решительность Unicode неправильно, но интерактивные подсказки делает хорошо
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s = u'中'
>>> s
u'\u4e2d'
>>> print s
中
я могу получить строку Unicode «中» печатается правильно.
Но когда я, как это в командной строке Bash:
python2 -c "s = u'中'; print(repr(s)); print(s)"
результат команды я получаю
u'\xe4\xb8\xad'
ä¸
Мой терминал набор символов кодировка «UTF-8». Итак, что не так с операциями командной строки Python? Почему операторы командной строки не могут правильно печатать строку Unicode?
Спасибо!
Да, это работает, но я хочу знать, почему результат отличается, а операторы командной строки не могут дать правильный результат? – zhenguoli
Интересно, что python -c "s = u '\ u4e2d'; print repr (s); print s" также работает, интересно, что проблема с s = u '中' ... – Bemmu
\ xe4 \ xb8 \ xad является кодировкой UTF-8 中, поэтому он выглядит как bash уже utf-8, кодирующий его – Bemmu