[英]Unicode in Python on Google App Engine
我需要發出POST請求,其中的數據可能是非ASCII(中文,日文字符)。 我需要將輸入轉換為unicode並使用utf-8進行編碼。 這是我的操作方式:
foo = unicode(self.request.get('foo'), 'utf-8') #convert to unicode
foo = foo.encode('utf-8') #encode with utf-8
data = {'foo': foo}
payload = urllib.urlencode(data)
但是,我一直在日志中收到此錯誤:
TypeError:不支持解碼Unicode
Unicode無法解碼,因為它已經是Unicode。
嘗試以下方法:
if isinstance(var, str):
var = unicode(var, 'utf-8')
else:
var = unicode(var)
好一些評論:
foo = unicode(self.request.get('foo'), 'utf-8') #convert to unicode
不要稱其為“轉換”。 稱其為“解碼”,這使它更清晰。
foo = foo.encode('utf-8') #encode with utf-8
但為什么? 您剛剛從 UTF8對其進行了解碼,為什么還要對其進行編碼? 您也可以這樣做:
foo = self.request.get('foo')
這相當於以上兩行。
為了減輕您對Unicode的困惑,請閱讀以下內容: http : //www.joelonsoftware.com/articles/Unicode.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.