使用lxml解析带有日语的xml
我有以下 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)']
但是,当我使用 title.encode(utf
,我得到了一些乱码:INSERT
到我的数据库中时-8)
セ㡡¡¡¡¤¤†ã‚£ãς⁄ (å—夕窈)
我将如何正确解析 标题
在这里(セrenティー (字幕版)),这样我就可以对值进行INSERT
。
I have the following xml document:
<package>
<title>セレニティー (字幕版)</title>
...
</package>
I am using lxml
to parse the title as follows:
node = etree.fromstring(file_contents)
title = node.xpath("//t:title/text()")
title
[u' \u30bb\u30ec\u30cb\u30c6\u30a3\u30fc (\u5b57\u5e55\u7248)']
However, when I INSERT
this into my database using title.encode(utf-8)
, I get gibberish:
セレニティー (å—幕版)
How would I correctly parse the title
here (セレニティー (字幕版)), so I can do an INSERT
of the value.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
确保您的 MySQL 实例也设置为将 Unicode 存储为 UTF-8。
Make sure your MySQL instance is set up to store Unicode as UTF-8 as well.
实际上,这对我来说是 lxml 本身的一个问题,他们假设每个人都会默认使用 ASCII/Latin-1,这是愚蠢的。即使尝试以 UTF-8 运行解析器也可能会返回错误,请尝试像这样调用解析器:
据我所知,Shift-JIS 仍然是日语页面最常见的字符集。我的 Python/lxml 模块 http://github.com/caio1982/Amazon-Wishlist 适用于日语使用上述内容的页面。
Actually this is a problem in lxml itself to me, they assume everybody will use ASCII/Latin-1 by default, which is stupid. Even trying to run the parser in UTF-8 may return errors to you, try calling the parser like this:
Shift-JIS is still the most common charset for pages in Japanese, as far as I can see. My Python/lxml module http://github.com/caio1982/Amazon-Wishlist works with Japanese pages using the above.