JQuery ajax的post方法向action传文件路径出现乱码(非中文乱码)
程序员文章站
2022-06-07 14:46:19
...
在Jquery中使用post方法给服务器发送数据出现乱码,具体代码就现象如下:
js代码:
乱码如下:
D: omcat-7.0.27webappsdssx rontdataexam
如果js中用escape("D:\tomcat-7.0.27\webapps\dssx\front\data\exam")的话,就是这样的:
D%3A%09omcat-7.0.27webappsdssx%0Crontdataexam
js代码:
function loadChild(val){ //alert(); $.post('backstage/resource/toloadChild', { path : "D:\tomcat-7.0.27\webapps\dssx\front\data\exam" }, function(data) { alert(data); }, "xml"); }Action中的接收代码:
public String loadChild() throws UnsupportedEncodingException{ request = ServletActionContext.getRequest(); request.setCharacterEncoding("utf-8");//没有这句也是乱码 File file = new File(request.getParameter("path")); System.out.println(file.getPath()); return SUCCESS; }
乱码如下:
D: omcat-7.0.27webappsdssx rontdataexam
如果js中用escape("D:\tomcat-7.0.27\webapps\dssx\front\data\exam")的话,就是这样的:
D%3A%09omcat-7.0.27webappsdssx%0Crontdataexam
网页都是使用UTF-8编码
解决办法:我发现其实只要把路径中的反斜杠改为正斜杠就可以了