- Есть замечательная презентация в виде тезисов или видео. Усвоение этого материала снимет большинство типовых вопросов.
- Не используйте нигде в приложении однобайтовые кодировки (cp1251, koi8-r и подобные) – только UTF-8. App Engine всегда пытается задействовать по умолчанию UTF-8.
- Убедитесь, что ваш текстовый редактор сохраняет по умолчанию файл в UTF-8.
- В начало каждого файла с кодом добавляйте строчку # coding=UTF-8
- Поместите оператор u перед каждой строкой, которая содержит символы не из кодировки ascii. К примеру, на немецком u»Jag är en liten hatt och är bög»
- При обработке входящих запросов убедитесь что корректно используется request.encoding = «UTF-8″
- Используйте ugettext как псевдоним для _
- Если метод (такой как quote() или hashlib.sha224() требует указать в параметрах байтовую строку, приведите ее в формат unicode: theunicodestring.encode(«utf-8″)
This entry was posted
on Среда, Август 13th, 2008 at 16:57 and is filed under Google App Engine.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
9. Приготовьте вервку и мыло, ну или хотябы таблетки от головной боли если не любите решать проблемы кардинально. Потому что те проблемы что останутся – доставят вам массу удовольствий.
Пример
отлаживаем XML-RPC запросы.
получаем запрос содержащий русские буквы, находится он у нас в self.request.body
при попытке как-то обработать эту дрянь, например засунуть в базу данных что-то происходит. Что именно – неизвестно поскольку ответ обрабатывает приложение (в моем случае блог клиент) и оно говорит нам только что получен код 500. Какого-то нормального логирования в девелоперской версии AppEngine нет (или я пока не нашел). Собственно в БД для этого и пытаюсь засунуть.
Попытка сделать например вот так:
self.request.body.encode(‘unicode_escape’) также приводит к тому что на этом месте скрипт и умирает.
если отрезать у self.request.body жопу, так чтобы в остаток не попали русские символы – все работает
И чаво дальше?
Пойду убью себя об стену….