0

我在 os x 上遇到了 mysql 5.5 的问题。我正在开发一个多语言项目并使用 MyISAM 表。默认字符集是 utf-8 和默认排序规则 utf8_unicode_ci。

意大利语和德语很好,但西班牙语不是。我正在使用 python 来操作数据,pymysql 驱动程序带有 utf-8 的字符集选项和 unicode true。

几乎所有特定的西班牙语字母都是一团糟。

从 python 外壳:

>>>r
>>>['Blas P\xc3\xa9rez Gonz\xc3\xa1lez, 4']
>>>print[0]
>>>Blas Pérez González, 4
after saving it to database and fetching it again:
>>>r
>>>(u'Blas P\xc3\xa9rez Gonz\xc3\xa1lez, 4')
>>>print r[0]
>>>Blas Pérez González, 4

我真的很困惑,它显然似乎是同一个 unicode 字符串!

谢谢。

4

1 回答 1

0

更好地使用 java 风格的 unicode 转义,比如

u'\\u0e4f\\u032f\\u0361\\u0e4f'.decode('unicode-escape')

类似问题

这可确保您在字符串中有 unicode。

然后是实际问题:在 mysql 中尝试describe the_table。仍然在列定义中可以设置字符集。试试看你的桌子是否还好。


用于测试:存储u'Blas P\\u00e9rez Gonz\\u00e1lez'.decode('unicode-escape')在数据库中。然后你就知道存储了正确的 unicode 字符串。如果数据库有正确的 db/table/field 定义,那么只有检索而不是存储可能有问题。

于 2012-09-22T20:36:50.517 回答