jquery ajax url中有中文,后端乱码的解决方法.txt

参考:https://zhidao.baidu.com/question/2057437468670456147.html
url类似: http://localhost:8080/floorsNodes/风管.json
方法:
在jquery ajax中可以对url进行2次编码,encodeURI(encodeURI(url)),
后端,对该url,解码一次,搞定!

关键代码:
1.前端
$.ajax({
    // 类似这样:"./data/3dtiles/bimYIYUAN/floorsNodes/16F.json"
    url: encodeURI(encodeURI(url)),
    dataType: 'json',
    data: {},
    success: function(floor) {}
});
2.后端(我用的python3)
from urllib.parse import unquote
pathFile = unquote(pathFile)

技术细节:
1.前端:
http://localhost:8080/floorsNodes/风管.json
第一次encodeURI(url),得到:http://localhost:8080/floorsNodes/%E9%A3%8E%E7%AE%A1.json
第二次encodeURI(url),得到:http://localhost:8080/floorsNodes/%25E9%25A3%258E%25E7%25AE%25A1.json
说明:
第一次得到了,“风管”的 百分比编码。
第二次,将"%" -> "%25"。
2.后端:
后端获取的url是,http://localhost:8080/floorsNodes/%E9%A3%8E%E7%AE%A1.json
unquote后是这样的:http://localhost:8080/floorsNodes/风管.json

细节说明:
前端最后的url是,http://localhost:8080/floorsNodes/%25E9%25A3%258E%25E7%25AE%25A1.json
到了后端的url是,http://localhost:8080/floorsNodes/%E9%A3%8E%E7%AE%A1.json
可见,前端到后端,发生了一次解码操作。
这是谁干的呢?我不知道。
或许这就是,需要两次encodeURI(url)的原因,
否则,只有一次encodeURI(url),到后端会解析成乱码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值