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