Python UTF-8 японский - PullRequest
       9

Python UTF-8 японский

0 голосов
/ 05 февраля 2011

У меня есть несколько японских слов, которые я хочу преобразовать в utf-8, как показано ниже:

jap_word1 = u'中山'
jap_word2 = u'小倉'

print jap_word1.encode('utf-8') # Doesn't work 
print jap_word2.encode('utf-8') # Prints properly

Почему одно слово может быть правильно преобразовано в utf-8 и напечатано, чтобы показать егосимволы, но не другие?

(я использую python 2.6 в Windows 7 Ultimate)

Ответы [ 2 ]

1 голос
/ 05 февраля 2011

Множество вещей должно быть выровнено, чтобы правильно печатать символы:

  1. В какой кодировке сохранен скрипт?
  2. Есть ли в вашем скрипте оператор # coding: xxxx, где xxxxсоответствует кодировке, в которой сохранен файл?
  3. Поддерживает ли ваш выходной терминал кодировку?import sys; print sys.stdout.encoding а.Если нет, вы можете изменить кодировку консоли?(chcp команда в Windows)
  4. Поддерживает ли используемый вами шрифт символы?

Сохраняя скрипт в UTF-8, это работает как в PythonWin, так и в IDLE.

# coding: utf-8
jap_word1 = u'中山'
jap_word2 = u'小倉'

print jap_word1
print jap_word2

Интересно, я получил ваши результаты с .encode('utf-8'), добавленным к обоим отпечаткам в IDLE, но он работал правильно в Pythonwin, чье окно вывода по умолчанию поддерживает UTF-8.

Idle isстранный зверьsys.stdout.encoding в моей системе выдает 'cp1252', который не поддерживает азиатские символы, но печатает первое слово неправильно, а второе - правильно при печати в UTF-8.

0 голосов
/ 05 февраля 2011

Потому что ваша консоль не в UTF-8.Запустите chcp 65001 перед запуском.

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