2011-08-15 111 views
1

我正在研究Google App Engine项目。当我使用jQuery发送一个序列化表单作为html文章时,我得到了一些编码字符而不是非英文字符。使用纯HTML不是问题。在Python中转换非英文字符

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

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

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

回答

2

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

你的第一个诱惑是认为“这是复杂的方式”,它是,但是对于Unicode是解决方案的一般问题而言,它是人性的。

+0

嗨。 我使用urllib.unquote已经是。其余的事情:我谦卑地鞠躬致意。我最好开始阅读。 /Michael – BersekerBernhard

0

urllib.unquote似乎是正确的串解码:

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

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

也许错误是别的地方在你的应用程序?