2013-08-01 26 views
1

我在包含非ascii字符(utf-8)的關鍵「動詞」字符串下的字典中。 我想發送給客戶端該字典(我正在使用龍捲風我Python 2.7.2和simplejson)。 我試圖像如何使用simplejson發送包含utf字符的客戶端字典?

result = {"verb" : "Želeći"} 
self.write(simplejson.dumps(result, ensure_ascii=False)) # tried also with utf-8 encoding parameter passed 
self.flush() 

但總是得到錯誤UTF8編碼解碼器位置0

如何發送到其中包含與simplejson UTF字符客戶端詞典不能解碼字節爲0x8E?

回答

0

它爲我的作品:

>>> import simplejson 
>>> result = {"verb" : "Želeći"} 
>>> simplejson.dumps(result, ensure_ascii=False) 
u'{"verb": "\u017dele\u0107i"}' 

我使用python 2.7.4

0

你是不是 UTF-8編碼的數據。

JSON字符串實際上是Unicode字符串,但是您要給它一個字節字符串。首先手動解碼你的數據,而不是讓json模塊爲你做,錯誤地。

由錯誤代碼來看,你有編碼數據而不是Windows 1252(CP1252),所以下面的工作:

result['verb'] = result['verb'].decode('cp1252') 
simplejson.dumps(result, ensure_ascii=False).encode('UTF8') 

它也可以使用windows-1250; 1250和1252都將Ž字符(Unicode碼值U + 017D,帶CARON的LATIN CAPITAL LETTER Z)編碼爲十六進制8E。

相關問題