【发布时间】:2016-01-02 20:52:46
【问题描述】:
当我将 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
好:
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
【问题讨论】:
-
为什么要解码为 latin-1?
-
这解决了原来的问题。您可以在original post 中看到问题所在以及我使用这种编码的原因。当然,如果您有一个可以避免这个问题的原始问题的解决方案,那也很棒!
-
我实际上想知道为什么您需要特殊字符才能使用 url。为什么不对输入进行规范化,并且 url 仍然会解析?在 python 中,您可以通过执行以下操作来消除重音:
wiki2 = unicodedata.normalize('NFKD', wiki2).encode('ascii','ignore')after importingunicodedata. -
如果
.decode('latin1')作用于 SQL 数据,则 SQL 数据不是 UTF-8。 -
我提出了一项重大修改,我认为这是问题的症结所在 - 您的 IDE 突出显示了 URL,但您的重音字符使您的 IDE 认为它无效。
标签: python mysql python-2.7 unicode