Python没有连接字符串和unicode来链接

时间:2016-01-02 20:52:47

标签: python mysql python-2.7 unicode

当我将一个Unicode字符串附加到str的末尾时,我无法点击该URL。

为:

base_url = 'https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&titles='

url = base_url + u"Ángel_Garasa"
print url

The final output for a name with accents

好:

base_url = 'https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&titles='

url = base_url + u"Toby_Maquire"
print url

The final output for a name without accents

1 个答案:

答案 0 :(得分:1)

您似乎在IDE(也许是PyCharm)中打印结果。您需要对字符串的UTF-8编码版本进行百分比编码:

import urllib

base_url = 'https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&titles='
name = u"Ángel_Garasa"

print base_url + urllib.quote(name.encode("utf-8"))

这显示:image showing clickable link with percent encoded portion

在您的情况下,您需要更新代码,以便数据库中的相关字段为百分比编码。您只需要将这一个字段编码为UTF-8,仅用于百分比编码。