我有一个用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来恢复我的'ç'...
有没有办法获取原始参数或正确解码的字符串?
答案 0 :(得分:1)
在本地运行示例时,在访问参数之前将请求编码切换为latin-1
会为我返回正确解码的字符串。
request.encoding = 'latin-1'
path = request.GET.get('relative_h', None)
但是,我无法告诉你为什么会这样,因为我会假设utf-8
的默认编码会处理该特定字符。