我写了一个简单的应用程序,从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")
Run Code Online (Sandbox Code Playgroud)
但结果是一样的(它根本不起作用).
Mat*_*haq 14
对于 Python 3,unquote现在在urllib.parse:
import urllib
print(urllib.parse.unquote("Lech_Kaczy%C5%84ski"))
Run Code Online (Sandbox Code Playgroud)
试试这个:
import urllib
urllib.unquote("Lech_Kaczy%C5%84ski").decode('utf8')
Run Code Online (Sandbox Code Playgroud)
这将返回一个unicode字符串:
u'Lech_Kaczy\u0144ski'
Run Code Online (Sandbox Code Playgroud)
然后你可以照常打印和处理.例如:
print(urllib.unquote("Lech_Kaczy%C5%84ski").decode('utf8'))
Run Code Online (Sandbox Code Playgroud)
会导致
Lech_Kaczy?ski
Run Code Online (Sandbox Code Playgroud)