开发环境:Ubuntu16.04+Django 1.11.9+Python2.7
在开发中,在做查找某些信息这个功能的时候,遇到的一个问题。需要在URL中传递查找的关键字,当关键字为中文的时候,并不友好.
当输入关键字为中文(这里我输入的是’第一次’)的时候,接收到参数是这样的
%E7%AC%AC%E4%B8%80%E6%AC%A1
这样格式的是经过urlencode后的中文,既然这样就需要进行url解码.
import urllib
c='%E7%AC%AC%E4%B8%80%E6%AC%A1'
e=urllib.unquote(c)
c='1'
f=urllib.unquote(c)
print e #输出结果: 第一次
print f # 输出结果: 1
上面的代码是在Windows下Pycharm里测试输出的,结果符合预期.
在开发代码中写入后,使用postman进行测试的时候,是可以的.但当和前端页面进行联合调试的时候,就出现了问题.
import urllib
def select_seller(request,keyword):
logging.debug(keyword) #logging.debug 接收到的参数%E7%AC%AC%E4%B8%80%E6%AC%A1
keyword = urllib.unquote(keyword)
logging.debug(keyword) # 解码后:第ä¸<80>次
接收到的参数,解码后居然是‘第ä¸<80>次’这样的