通过ajax从python返回unicode字符串

时间:2010-04-08 15:44:04

标签: python ajax unicode

我有一个小的webapp,它在服务器端运行Python,在客户端运行javascript(jQuery)。 现在根据某个请求,我的Python脚本返回一个unicode字符串,客户端应该将该字符串放在浏览器的div中。但是我从Python中获得了unicode编码错误。

如果我从shell运行脚本(debian linux上的bash),脚本运行正常并打印unicode字符串。

有什么想法吗?

谢谢!

修改

这是导致错误的print语句:

print u'öäü°'

这是我收到的错误消息: UnicodeEncodeError:'ascii'编解码器无法对位置34-36中的字符进行编码:序数不在范围内(128)

但是我只在通过ajax调用脚本时才收到该消息($('#somediv')。load('myscript.py');)

谢谢!

1 个答案:

答案 0 :(得分:3)

如果python解释器无法确定sys.stdout ascii的编码被用作后备,但字符串中的字符不是ascii的一部分,因此会引发UnicodeEncodeError异常。

解决方案是使用类似.encode(sys.stdout.encoding or "utf-8")的内容自行编码字符串。这样,utf-8用作后备而不是ascii。