在JavaScript中,我执行以下操作:
encodeURIComponent(comments)
在Python中,我会执行以下操作:
urllib2.unquote(comments)
出现以下情况时:
encodedURIComponents('ø')
我收到了
%C3%B8
,但是当我解码时...urllib2.unquote('%C3%B8')
我得到的是ø
而不是原始字符ø
。
这是怎么回事?
我所使用的平台客户端使用jQuery,服务器端使用Python/Django。
unicode
字符串中,并在每个边界处适当地进行编码和解码字符串。(Python 3通过在出错时提供错误信息而不是乱码使此过程更加容易。) - abarnertstr
和unicode
之间编码和解码的方法,如果只使用str
,则处理其含义未指定的字节。(请参见sys.getdefaultencoding()
返回的内容)。因此,获取表单所使用的字符集,并将字符串解码为Unicode以进行操作; 在发送回来时,编码为UTF-8并设置字符集(或者更好的是,让Django处理它,以防浏览器由于某种原因发送了“Accept-Charset”)。 - abarnert