参考: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),到后端会解析成乱码。
jquery ajax url中有中文,后端乱码的解决方法.txt
最新推荐文章于 2021-08-06 14:38:02 发布