使用lxml用日语解析xml

时间:2012-02-19 20:14:11

标签: python mysql xml unicode lxml

我有以下xml文档:

<package>
    <title>セレニティー (字幕版)</title> 
    ... 
</package>

我正在使用lxml来解析标题,如下所示:

node = etree.fromstring(file_contents)
title = node.xpath("//t:title/text()")
title
[u' \u30bb\u30ec\u30cb\u30c6\u30a3\u30fc (\u5b57\u5e55\u7248)']

然而,当我INSERT使用title.encode(utf-8)进入我的数据库时,我得到了胡言乱语:

セレニティー (字幕版)

我如何正确解析title这里(セレニティー(字幕版)),所以我可以INSERT这个值。

2 个答案:

答案 0 :(得分:1)

确保您的MySQL实例设置为将Unicode也存储为UTF-8。

答案 1 :(得分:0)

实际上这对我来说是lxml本身的问题,他们假设默认情况下每个人都会使用ASCII / Latin-1,这是愚蠢的。即使尝试以UTF-8运行解析器也可能会向您返回错误,请尝试像这样调用解析器:

  

parser = etree.HTMLParser(encoding ='shift-jis')

据我所知,Shift-JIS仍然是日语中最常见的字符集。我的Python / lxml模块http://github.com/caio1982/Amazon-Wishlist使用上面的日语页面。