python脚本中的日语字符

2024-04-26 17:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python脚本,将日语单词附加到一个普通类型的url上。我的IDE(spyder)完美地显示了日语字符,浏览器和我的服务也是如此,但语言似乎有问题。例如,当我输入以下内容时,我的服务会给出正确的答案: http://example.com/translate?lang=ja&word=こん_ちは

但在我看来:

word = u'こんにちは'

In [29]: url = "http://example.com/translate?lang=ja&word=" + word

In [30]: word
Out[30]: u'\u3053\u3093\u306b\u3061\u306f'

In [31]: url
Out[31]: u'http://example.com/translate?lang=ja&word=\u3053\u3093\u306b\u3061\u306f'

我的服务无法识别该网址。 怎么能修好?在


Tags: incomhttpurllangexampleouttranslate
1条回答
网友
1楼 · 发布于 2024-04-26 17:31:56

浏览器url为您编码查询字符串。您需要在Python中手动执行此操作:

在python2.x中,使用^{}^{}

>>> import urllib
>>> word = u'こんにちは'
>>> url = "http://example.com/translate?lang=ja&word=" + urllib.quote(word.encode('utf-8'))
>>> url
'http://example.com/translate?lang=ja&word=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF'

在python3.x中,使用^{}^{}

^{pr2}$

替代使用^{}(Python 2.x)

>>> "http://example.com/translate?" + urllib.urlencode({'lang': 'ja', 'word': word.encode('utf-8')})
'http://example.com/translate?lang=ja&word=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF'

使用^{}(python3.x)

>>> "http://example.com/translate?" + urllib.parse.urlencode({'lang': 'ja', 'word': word}, encoding='utf-8')
'http://example.com/translate?lang=ja&word=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF'

相关问题 更多 >