2012-02-19 34 views
0

XML,我有以下XML文檔:使用LXML解析與日本

<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的值。

回答

1

確保您的MySQL實例設置爲將Unicode保存爲UTF-8。

+0

SET GLOBAL init_connect ='SET NAMES utf8';' – David542 2012-02-19 21:32:42

0

其實這是lxml本身對我的一個問題,他們認爲每個人都會默認使用ASCII/Latin-1,這很愚蠢。甚至試圖運行在UTF-8可能會返回錯誤給您的解析器,嘗試調用這樣的解析器:

解析器= etree.HTMLParser(編碼= '轉變-JIS')

移就我所知,JIS仍然是日文頁面最常用的字符集。我的Python/LXML模塊http://github.com/caio1982/Amazon-Wishlist用上述的日本網頁作品。