1

我已经搜索了很多页面来尝试帮助自己,以至于我现在对 python2 和 unicode 比开始之前更加困惑。

我想要达到的目标:

使用 google content api v2 for python,我编写了一个实现,它将从我们的数据库中获取产品并将它们发布到 Google。

这工作正常,直到我得到一些包含 unicode 字符的产品。

一个例子和从 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?

== 更新 == 我从 MySQL 数据库中获取产品名称。该表设置为使用 UTF-8 作为编码。

4

2 回答 2

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')

但除此之外。Python 2 中的 Unicode 支持很多时候都让人头疼。我建议尝试以 unicode 为标准的 Python 3。

于 2015-06-05T14:55:03.297 回答
1

Python 3 就是答案 :)(现在谷歌用他们的 sdk 支持它)

于 2016-11-03T18:26:14.533 回答