我有一個編碼問題: 當我在網頁瀏覽器的輸入中鍵入字符'é'時,它被張貼爲%E9,它工作正常。另一方面,當我嘗試使用Python和請求庫發佈請求時,它將作爲%C3%A9發送。Http POST口音編碼
我該如何解決問題?
這裏是行不通
requests.post("http://localhost", message = {"text":'é'})
感謝
我有一個編碼問題: 當我在網頁瀏覽器的輸入中鍵入字符'é'時,它被張貼爲%E9,它工作正常。另一方面,當我嘗試使用Python和請求庫發佈請求時,它將作爲%C3%A9發送。Http POST口音編碼
我該如何解決問題?
這裏是行不通
requests.post("http://localhost", message = {"text":'é'})
感謝
%C3%A9
代碼爲UTF-8編碼字符串的URL編碼版本:
>>> u'é'.encode('utf-8')
'\xc3\xa9'
>>> urllib.quote(u'é'.encode('utf-8'))
'%C3%A9'
進行明確編碼與latin-1
字符串編碼(或類似):
>>> u'é'.encode('latin1')
'\xe9'
>>> urllib.quote(u'é'.encode('latin-1'))
'%E9'
requests.post("http://localhost", message={"text": u'é'.encode('latin-1')})
很酷。我從來沒有用過python,所以我花了一些時間來篩選它。我知道這是unicode,但不知道該怎麼做轉換的人問。謝謝。 – craniumonempty 2014-09-22 01:20:51
感謝您的解決方案!爲了記錄,最後一行是requests.post(「http:// localhost」,{「text」:u'é'.encode('latin-1')}),沒有關鍵字消息 – egt 2014-09-22 22:37:11
這是寬字符。不知道如何改變它,堅持下去。 (見http://www.utf8-chartable.de/) – craniumonempty 2014-09-22 00:56:27