Python - Google Content API и Unicode
Я искал столько страниц, чтобы попытаться помочь себе, и теперь я больше запутался в python2 и unicode, чем был до того, как начал.
Чего я пытаюсь добиться:
Используя контент Google Api v2 для Python, я написал реализацию, которая будет брать продукты из нашей базы данных и публиковать их в Google.
Это работает нормально, пока я не доберусь до некоторых продуктов, в которых есть символы Юникода.
Пример и ошибки, возвращаемые из Google/ Python:
D' Addario EXP11 Coated Bronze Acoustic Guitar Strings, 12-53
Fender Stop Dreaming, Start Playing™ Affinity P Bass® With Rumble™ 15
ERROR'utf8' codec can't decode byte 0x92 in position 1: invalid start byte
ERROR'utf8' codec can't decode byte 0x99 in position 35: invalid start byte
Я знаю, что это символы ' ® ™, но не могу разобраться в аспекте.encode /.decode и т. Д.
Итак, может кто-нибудь сказать мне, как я могу взять эти названия продуктов со специальными символами в них, чтобы я мог опубликовать их в Google?
== update == Я получаю названия продуктов из базы данных MySQL. Таблица настроена на использование UTF-8 в качестве кодировки.
2 ответа
Пытаться:
u'Addario EXP11 Coated Bronze Acoustic Guitar Strings, 12-53
Fender Stop Dreaming, Start Playing™ Affinity P Bass® With Rumble™ 15'
или же
unicode('Addario EXP11 Coated Bronze Acoustic Guitar Strings, 12-53
Fender Stop Dreaming, Start Playing™ Affinity P Bass® With Rumble™ 15')
Но это в сторону. Поддержка Unicode в Python 2 - это боль в заднице много раз. Я рекомендую попробовать Python 3, где Юникод является стандартным.
Python 3 есть, ответ:) (теперь Google поддерживает его с их SDK)