在非utf符号上使用MySQLdb进行Utf8编码

时间:2012-06-24 23:43:59

标签: python mysql unicode encoding utf-8

我收到的xml Feed包含以下值:

<Theme>Valentine&#39;s Day</Theme>
<Copyright>&#169; Ventures. All Rights Reserved.</Copyright>

我需要解析该值并将其存储在mysql数据库中。什么是清理值的最佳方法,以便我可以插入"Valentie's Day""<copyright symbol> Ventures. All Rights Reserved."?这样有大约20多种不同的标记。

直接INSERT,我会得到以下错误:

Warning: Incorrect string value: '\xA9 1987...' for column 'title' at row 1

2 个答案:

答案 0 :(得分:2)

如果使用真正的xml解析器解析XML,则会将Unicode字符串作为文本。然后,您可以使用UTF-8对其进行编码:

title = text.encode('utf8')

并且标题可写入您的数据库,但许多细节仍然不清楚,因为我们不知道您是如何写入数据库的。

答案 1 :(得分:0)

指定编码,然后将字符串转换为utf8

# -*- coding: utf-8 -*-
title = text.encode('utf8')