求个问题, Python 编码问题。

2015-04-08 12:57:29 +08:00
 Anybfans

用的ExcelResponse 输出Excel

url路径为这个 user_export_down/?key=de4bfe042d193118a3f7887918ba8253&name=河南省%20郑州市%20中原中学%20用户数据统计[学生]

chrome可以正常下载Excel,IE报错
UnicodeEncodeError at user_export_down/
'gbk' codec can't encode character u'\ufffd' in position 0: illegal multibyte sequenceRequest Method: GET

请问要怎么处理。谢谢了。

3423 次点击
所在节点    Python
2 条回复
Septembers
2015-04-08 14:16:51 +08:00
aaaa007cn
2015-04-08 17:20:56 +08:00
看起来是 ie 发送请求时编码有问题
导致 django 在 request.GET 中 decode 到 unicode 时出错
\ufffd 就是著名的“锟斤拷”

正确的处理方法应该是想办法让 ie 发送正确编码的 url
比如正确设置页面编码等等

或者在 views.py 中 try except
当有编码错误时,手动设置 HttpRequest.encoding 后再次尝试
https://docs.djangoproject.com/en/1.8/ref/request-response/#django.http.HttpRequest.encoding
或者直接手动处理 HttpRequest.META['QUERY_STRING']

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/182306

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX