我正在开发Google App Engine项目。当我使用jQuery将序列化表单作为html帖子发送时,我得到一些编码字符而不是非英文字符。使用纯HTML不是问题。
在序列化结果中,我得到:".... defaultgroupcity=Lang%C3%A5 ..."
,但我应该得到:"defaultgroupcity=Langå"
。
现在这个角色转换对我来说一直是个问题,在其他项目中已经太久了,我需要把它弄好。在这个项目之前,我曾经做过replace("%C3%A5", "å")
,但这是一个丑陋的黑客,而不是一个长期的解决方案。
有人可以引导我找到解决方案吗?我想要正确地学习这件事。必须有一种通用的方法来修复字符转换。我错过了什么?
答案 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")
å
也许错误发生在你应用中的其他地方?