Есть ли способ распечатать надстрочные индексы в python. Печать 0 или 2 в качестве надстрочного индекса не является проблемой, но кроме этих цифр выдает обычный цифр.
Например, если я это сделаю:
>>> print("⁰¹²³⁴⁵⁶⁷⁸⁹")
я получил
°1²345678?
Что ж, я, кажется, нигде в сети не нашел удовлетворительного ответа. Итак, пожалуйста, помогите найти способ обойти это ...
Кстати, я использую python 3.5 в Windows 10 [32-бит], Если это имеет значение :-)
Обновлено:
Связанный / возможный обман: Преобразование числовых строк в надстрочные
Вы используете командную строку? Кажется, это командная строка. Прекрасно работает в режиме ожидания.
Я использую PowerShell, кстати
Кажется, это ограничение PowerShell и CMD. Возможно, этот нить пригодится.
@ palivek Спасибо огромное, у меня chcp 65001 сразу заработал! Сначала сразу набрал chcp 65001 в моей оболочке, а затем запустил мой скрипт python и это сработало
Не используйте chcp.com 65001. Вы не сможете вводить в консоль символы, отличные от ASCII. Это все еще не работает в Windows 10. Обновите до Python 3.6, который имеет надлежащую поддержку консольного ввода-вывода широких символов. Если вы не можете выполнить обновление, установите и включите пакет win_unicode_console.
Кроме того, в Windows 7 установка выходной кодовой страницы на 65001 вызывает запись мусорного следа после каждой записи, содержащей символы, отличные от ASCII. Это связано с тем, что WinAPI WriteConsoleA и WriteFile неправильно возвращают количество записанных в консоль элементов UTF-16 вместо количества записанных байтов UTF-8. Эти два числа одинаковы только для ASCII. Это заставляет буферизованных писателей повторить попытку записи байтов, которые, по-видимому, не были записаны успешно. Это может циклически повторяться несколько раз, записывая бессмысленный мусор, пока писатель не решит, что все байты были успешно записаны.






Думаю, это проблема PowerShell.
Если я попытаюсь напечатать надстрочный индекс 5 с помощью соответствующего кода, это сработает, только если я изменю шрифт по умолчанию (Lucida Console) на другой, например, Consolas.
>>> print(u'\u2075')
⁵
Если я не ошибаюсь, python 3.x уже считает строки Unicode. Во всяком случае, я попробовал, но результат тот же ...
Вы используете Windows cmd или PowerShell ??
Я видел ваше обновление сразу после моего первого ответа. Он работает с cmd, но не с PowerShell. Обновляю свой anwser.
Ага! Это зависит от шрифта.
@MelvinAbraham И теперь все в порядке?
Выдает мне следующую ошибку: UnicodeEncodeError: 'charmap' codec can't encode character '\u2075' in position 0: character maps to <undefined>
это работает для меня по желанию в py3 и py2 на 64-разрядной версии Linux, кстати