在Python中转换非英语字符

时间:2011-08-15 11:54:15

标签: jquery python google-app-engine character-encoding

我正在开发Google App Engine项目。当我使用jQuery将序列化表单作为html帖子发送时,我得到一些编码字符而不是非英文字符。使用纯HTML不是问题。

在序列化结果中,我得到:".... defaultgroupcity=Lang%C3%A5 ...",但我应该得到:"defaultgroupcity=Langå"

现在这个角色转换对我来说一直是个问题,在其他项目中已经太久了,我需要把它弄好。在这个项目之前,我曾经做过replace("%C3%A5", "å"),但这是一个丑陋的黑客,而不是一个长期的解决方案。

有人可以引导我找到解决方案吗?我想要正确地学习这件事。必须有一种通用的方法来修复字符转换。我错过了什么?

2 个答案:

答案 0 :(得分:2)

您需要urllib.unquote(),当然The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)Python Unicode HOWTO

你的第一个诱惑就是思考“这是为了复杂化的方式”,而且这是因为人类对于解决Unicode的一般问题负责。

答案 1 :(得分:0)

urllib.unquote似乎正确解码字符串:

>>> urllib.unquote("%C3%A5")
'\xc3\xa5'

>>> print urllib.unquote("%C3%A5")
å

也许错误发生在你应用中的其他地方?