Как напечатать японский UTF-8 на консоли в Windows? - PullRequest
0 голосов
/ 26 августа 2010
#coding=<utf8>
import os
os.popen('chcp 65001')

a = 'こんにちは世界'
print a.decode('utf8')

x = raw_input()

PYTHON 2.6 в Windows 7

Он будет работать в режиме ожидания без ошибок.

Однако при запуске из консоли он выдает ошибки и очень быстро мигает, и я не могу прочитать сообщение об ошибке. Как это можно сделать в консоли Windows?

Кстати, делать это с другими языками, такими как испанский или португальский, будет хорошо. Такие языки, как японский, русский, греческий, иврит, имеют такую ​​ошибку в консоли Windows.

* EDIT в соответствии с просьбой я изменил на этот код:

#coding=<utf8>
import os, sys
os.popen('chcp 65001')

print(sys.stdout.encoding)
x = raw_input('press enter to continue')

a = 'こんにちは世界'
print a.decode('utf8')

x = raw_input()

Будет напечатано: cp437

, а затем, конечно, продолжить мигать и потерпеть неудачу на бите декодирования ...

Похоже, что popen ('chcp 65001') не работает при изменении кодовой страницы. Я до сих пор не думаю, что это корень проблемы, однако было бы полезно узнать эффективный способ изменения этой кодовой страницы.

1 Ответ

0 голосов
/ 26 августа 2010

Обновление

Неважно.ОП использует Windows.

Интересно, что изменение объявления кодировки на #encoding=<utf8> не работает в Ubuntu.

Оригинальный ответ

Это сработало для меня (Ubuntu Jaunty, Python2.6.2).Единственное изменение, которое я сделал, было в первой строке, объявляющей кодировку.

# encoding: utf-8  
import os
os.popen('chcp 65001')

a = 'こんにちは世界'
print a.decode('utf8')

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