簡體   English   中英

Google App Engine上Python中的Unicode

[英]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.

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