2010-04-08 52 views
0

我有一個小的web應用程序在服務器端運行Python和客戶端的JavaScript(jQuery)。 現在根據某個請求,我的Python腳本返回一個unicode字符串,客戶端應該將該字符串放入瀏覽器的div內。但是,我得到一個來自Python的unicode編碼錯誤。從python返回unicode字符串通過AJAX

如果我從shell(debian linux上的bash)運行腳本,腳本運行良好並且打印unicode字符串。

任何想法?

謝謝!

編輯

這是導致錯誤的print語句:

print u'öäü°' 

這是錯誤消息我得到: UnicodeEncodeError: 'ASCII' 編解碼器不能編碼的字符位置34-36:序號不在範圍內(128)

但是,我只通過ajax($('#somediv')。load('myscript.py');)調用腳本時得到該消息)

謝謝!

+1

代碼?例外?什麼? – 2010-04-08 15:47:48

回答

3

如果python解釋不能確定sys.stdout ASCII的編碼被用作後備然而字符串中的字符不是ASCII的一部分,因此一個UnicodeEncodeError異常。

解決方案是使用類似.encode(sys.stdout.encoding or "utf-8")的東西來編碼字符串。這樣utf-8被用作後備而不是ascii。

相關問題