Python编码问题

时间:2011-05-17 13:09:13

标签: python

我正在使用一些python脚本,得到一个UTF8编码的原始字符串。首先我将其解码为utf8,然后完成一些处理,最后我将其编码回utf8并插入到DB(mysql)中,但DB中的字符不以实际格式显示。

str = '<term>Beiträge</term>'
str = str.decode('utf8')
...
...
...
str = str.encode('utf8')

在txt文件中以真实形式找到该字符串,但是在MYSQL_DB中,我发现它就像这样

 <term>"Beiträge</term>

知道为什么会这样吗? : - (

2 个答案:

答案 0 :(得分:1)

假设您使用的是MySQLdb库,则需要使用关键字参数创建连接:

  

<强> use_unicode       如果为True,则使用。返回类似文本的列作为unicode对象   连接的字符集。除此以外,   类似文本的列返回为   字符串。列返回为   普通字符串。 Unicode对象会   总是被编码到连接的   无论如何都是字符集   设置。

     

&安培;

     

<强>字符集       如果提供,连接字符集将更改为此   字符集(MySQL-4.1和更新版本)。   这意味着use_unicode = True。

您还应该检查数据库表的编码。

答案 1 :(得分:0)

要使字符串成为Unicode字符串,您应该使用stringprefix'u'。另请参见此处http://docs.python.org/reference/lexical_analysis.html#literals

也许你的例子只是在初始分配中添加前缀。