簡體   English   中英

python腳本中的日文字符

[英]Japanese characters in python script

我正在寫一個python腳本,用日語將一個單詞附加到一個普通類型的URL。 我的IDE(spyder)完美地顯示了日文字符,瀏覽器和我的服務也是如此,但語言似乎也有問題。 例如,當我輸入時,我的服務給了我正確的答案: http//example.com/translate?lang = ja& word =こんにちは

然而在我的IDE中:

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'

我的服務無法識別該網址。 怎么修好?

瀏覽器為您編碼查詢字符串。 您需要在Python中手動執行此操作:

在Python 2.x中,使用urllib.quoteurllib.quote_plus

>>> 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'

在Python 3.x中,使用urllib.parse.quoteurllib.parse.quote_plus

>>> import urllib.parse
>>> word = u'こんにちは'
>>> url = "http://example.com/translate?lang=ja&word=" + urllib.parse.quote(word, encoding='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'

替代使用urllib.urlencode (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'

使用urllib.parse.urlencode (Python 3.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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM