У меня действительно простая программа, которую я написал, чтобы сообщить мне значения unicode для некоторых символов.Юникод-символы неправильно печатаются в терминале python
Вот программа:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
characters = [u'T', u'ב', u'€', u'木', u'♥']
for character in characters:
print(character + " has the unicode value :\t"+str(hex(ord(character))) + "\n")
и дает этот вывод:
T has the unicode value : 84
ב has the unicode value : 1489
€ has the unicode value : 8364
木 has the unicode value : 26408
♥ has the unicode value : 9829
Я замечаю, что выход отформатирован должным образом, когда я скопировать и вставить здесь, но на моем компьютере второй линии отображается в этом терминале
has the unicode value : 1489 ב
также я попытался поставить вывод в файл и просмотр файла с помощью vim, и он также выглядит так, с символом, который должен быть напечатан первым, который будет напечатан последним. Это заставляет меня думать, что он правильно печатается, но не отображается правильно. Что может случиться?
какая версия Python вы используете? Если вы используете python2, ваш код должен исправить ошибку –
@PadraicCunningham, учитывая, что нет никакого 'u' перед тем, что явно является Unicode, но оно все еще дает правильный результат от' ord', я бы сказал, что это Python 3. Какая под-версия Я не знаю. –
@MarkRansom, я хотел быть вдвойне уверен, если результат не соответствует, и это python3, тогда кодировка более чем вероятна. –