我正在使用一些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>
知道为什么会这样吗? : - (
答案 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
也许你的例子只是在初始分配中添加前缀。