Да, хорошо, поэтому у меня есть эта огромная проблема с кодировками, и я просто не знаю, как с этим бороться. После двух дней поиска Google я думаю, что у меня просто закончились варианты :)Юникод проблемы в Python
Что я хочу сделать, это следующее.
- Расположить текст в текстовом поле на веб-сайте
- Отправить текст на внутреннем интерфейсе (написанный на Python)
- Используйте текст, чтобы создать:
а. Изображение в PIL.
b. Запись в MySQL.
Теперь все это работает гладко, когда мы говорим о обычных персонажах. Но когда я пытаюсь использовать корейские, польские, японские символы, я получаю очень странные выглядящие символы, вставленные как в изображение, так и в базу данных. В приведенных ниже примерах я буду использовать трехсимвольную строку польских символов - «śść».
Вот что я сделал после Googling.
Поставлен следующее в .htaccess:
AddCharset UTF-8 .py .css .js .html
Мой файл питон теперь начинается с:
#!/usr/bin/python
# -*- coding: utf-8 -*-
Все мои базы данных MySQL кодируются в "utf8_unicode_ci".
Теперь, вот пример того, что я пытаюсь сделать ... Всякий раз, когда я анализирую «Asc» (три польских символов) оно сохраняется в базе данных и генерируется на изображении как:
ąść
Теперь несколько проблем отладки. Я перехожу непосредственно к Python и назначаю следующую переменную (value_text1), которая обычно имеет свой синтаксический анализ текста (поэтому - без синтаксического анализа текста, просто установите фиксированный текст, чтобы сгенерировать изображение с помощью и поместить в базу данных):
A) Если я пойду с value_text1 = 'ąść'
, я получаю …ść
.
B) Если я пойду с value_text1 = u'ąść'
я получаю следующее сообщение об ошибке:
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256)
C) Если я пойду с value_text1 = u'ąść'.encode('UTF-8')
я получаю …ść
в результате.
D) Если я согласен с value_text1 = u'\u0105\u015B\u0107'.encode('UTF-8')
, где "\u0105\u015B\u0107"
является фактическим кодом в формате Юникод для «śść», я получаю …ść
.
Действительно не знаю, что я делаю неправильно - настройки сервера, настройки файла python, неправильная команда? Полюбите любые мысли, огромное спасибо заранее.
Как вы передаете свой текст в PIL? – nneonneo
Где вы можете получить это сообщение об ошибке? Что такое код, который вызывает это сообщение об ошибке? – BrenBarn
Возможно, ваш редактор не сохраняет символ non-ascii в utf-8. – thkang