我写了一个简单的应用程序,从wiki页面下载文章。当我搜索例如名字Lech
时,我的代码会返回Lech_Kaczy%C5%84ski
或Lech_Pozna%C5%84
而不是Lech_Kaczyński
和Lech_Poznań
等字符串。
如何将这些字符解码为普通的抛光字母?我试着用:
urllib.unquote(text)
但后来得到Lech_Kaczy\xc5\x84ski
,Lech_Pozna\xc5\x84
而不是Lech_Kaczyński
和Lech_Poznań
。
我的代码中有:
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
但结果是一样的(它根本不起作用)。
答案 0 :(得分:5)
试试这个:
import urllib
urllib.unquote("Lech_Kaczy%C5%84ski").decode('utf8')
这将返回一个unicode字符串:
u'Lech_Kaczy\u0144ski'
然后您可以像往常一样打印和处理。例如:
print(urllib.unquote("Lech_Kaczy%C5%84ski").decode('utf8'))
将导致
Lech_Kaczyński
答案 1 :(得分:5)
对于Python 3,_id
现在位于unquote
之内:
urllib.parse
答案 2 :(得分:0)
这对我有用:
import urllib
print urllib.unquote('Lech_Kaczy%C5%84ski')
打印出
Lech_Kaczyński