为什么webbroswer.open()无法识别Python中的非英语单词?

时间:2015-11-25 13:59:12

标签: python unicode

我制作了一个非常简单的程序,如下所示:

import webbrowser

a = 'https://www.google.com/maps/place/' + '강남'
webbrowser.open(a)

当我执行此程序时,浏览器已打开,其中url =' https://www.google.com/maps/place/ ??'

为什么它接受韩语作为' ??" ?。它与unicode有关吗?

由于

1 个答案:

答案 0 :(得分:1)

URI(以及URL)只能包含ASCII字符。您必须encode非ASCII字符,如下所示:

import webbrowser
import urllib.request

a = 'https://www.google.com/maps/place/' + urllib.request.quote('강남', '')
webbrowser.open(a)

然后,现代浏览器将呈现转义的网址(但不会对其进行解释,例如复制时):

Chrome rendering of Unicode URL