Django中文报错——url含中文

 其中:Request URL显示的内如下:

Request URL: http://www.xxxxx.com/media/Workafter/notice/%25C0%25EE%25C5%25F3%25B7%25C9.doc

 url的表头显示的url为http://www.xxxx.com/media/Workafter/notice/%E6%9D%8E%E6%9C%8B%E9%A3%9E.doc

经分析核实,

(1)'李朋飞.doc'按照gn2312格式,经过2次urlencode编码后得到的内容为%25C0%25EE%25C5%25F3%25B7%25C9.doc;按照utf8格式经过一次编码后得到的内容为%E6%9D%8E%E6%9C%8B%E9%A3%9E

(2)python和django中对于url的编码展示如下:

from django.utils.http import urlquote,urlencode,unquote

str = '李朋飞.doc'
aa = 'http://www.xxxx/media/Workafter/notice/%25C0%25EE%25C5%25F3%25B7%25C9.doc'
bb = 'http://www.xxxx/media/Workafter/notice/%C0%EE%C5%F3%B7%C9.doc'


a1='http://www.xxxxx/media/Workafter/notice/'+ urlquote(str)
print(a1)
print(unquote(a1))
print(unquote(a1).encode('utf8'))
打印结果如下:

http://www.xxxx/media/Workafter/notice/%E6%9D%8E%E6%9C%8B%E9%A3%9E.doc
http://www.xxxx/media/Workafter/notice/李朋飞.doc
b'http://www.xxxx/media/Workafter/notice/\xe6\x9d\x8e\xe6\x9c\x8b\xe9\xa3\x9e.doc'

猜你喜欢

转载自blog.csdn.net/qq_15028721/article/details/118786409