2011-11-01 85 views
3

我試圖使用YouTube的數據API來搜索搜索字詞 包含中文字符的位置。 但是,搜索查詢未返回正確的結果。Unicode在Youtube API中用於在python中進行視頻搜索

我正在使用python,我只是寫了一些使用unicode的測試代碼。
在測試代碼中,我硬編碼一個unicode術語,將其轉換爲utf-8,然後url 將其編碼爲搜索術語並將其傳遞給youtube api。 代碼如下:

yt_service = gdata.youtube.service.YouTubeService() 
    query = gdata.youtube.service.YouTubeVideoQuery() 

    u_topic = u"a-mei" 
    u_topic = u"阿妹" # a-mei 
    s_topic = u_topic.encode('utf-8') 
    query.vq = urllib.quote_plus(s_topic ) 

    query.time = 'this_month' 
    query.orderby = 'relevance' 
    query.racy = 'include' 
    feed = yt_service.YouTubeQuery(query) 

代碼的工作,當我搜索U「阿妹」 但是當我搜索ü我沒有得到正確的結果「阿妹」

我也嘗試以下網址:

https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9 

(這裏的URL作爲鏈接:https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9
在q字符串是UTF-8的URL編碼U 「阿妹」
該網址返回正確的結果。

因此,似乎youtube api允許utf-8用於搜索條件,但由於某種原因,我的api調用不會返回正確的結果 。

+1

你在腳本的頂部有'# - * - coding:utf-8 - * - '嗎? – wberry

+0

好點。是的,我在腳本和html頁面都有。 – TaiwanGrapefruitTea

回答

4

我相信gdata API應該照顧格式化查詢參數給你。所以你不需要手動輸入urllib.quote_plus你的查詢,這樣做會導致一個雙重轉義的字符串,讓你從字面上搜索名字是百分比負載的視頻。

+0

是的!這是錯誤!感謝您的卓越見識! – TaiwanGrapefruitTea

相關問題