检索get参数时编码错误

时间:2018-06-12 10:23:57

标签: django django-2.0

我有一个用URL编码编码的网址,即:/filebrowser/?cd=bank/fran%E7ais/essais

问题在于,如果我通过以下方式检索参数:

path = request.GET.get('relative_h', None)

我明白了:

/filebrowser/?cd=bank/fran�ais/essais

而不是:

/filebrowser/?cd=bank/français/essais

或:

/filebrowser/?cd=bank/fran%E7ais/essais

然而,%E7确实对应于'ç',因为你可以看到there

由于%E7用替换字符解码,我甚至无法使用urllib.parse.unquote来恢复我的'ç'...

有没有办法获取原始参数或正确解码的字符串?

1 个答案:

答案 0 :(得分:1)

在本地运行示例时,在访问参数之前将请求编码切换为latin-1会为我返回正确解码的字符串。

request.encoding = 'latin-1'
path = request.GET.get('relative_h', None)

但是,我无法告诉你为什么会这样,因为我会假设utf-8的默认编码会处理该特定字符。