我目前正在使用一个 python 脚本(appengine),它从用户(文本)获取输入并将其存储在数据库中以便以后重新分发。
就编码而言,传入的文本是未知的,我只需要对其进行一次编码。
来自客户的示例文本:
- This%20is%20a%20test
- 这是一个测验
现在在python中,我认为我可以做的是对其进行解码然后对其进行编码,以便两个样本都变为:
- This%20is%20a%20test
- This%20is%20a%20test
我正在使用的代码如下:
#
# Dencode as UTF-8
#
pl = pl.encode('UTF-8')
#
#Unquote the string, then requote to assure encoding
#
pl = urllib.quote(urllib.unquote(pl))
来自有效负载pl
的POST参数的位置。
问题
问题是有时我会得到特殊的(中文、阿拉伯语)类型的字符,并且会出现以下错误。
'ascii' codec can't encode character u'\xc3' in position 0: ordinal not in range(128)
..snip..
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc3' in position 0: ordinal not in range(128)
鉴于上述问题,有人知道处理字符串的最佳解决方案吗?
谢谢。