关于jquery ajax提交乱码的问题
我利用jquery的ajax函数向服务器端发送了一个post请求,请求的字段中有一些中文,在action(struts1)中接收参数的时候发生了乱码的问题.
首先我的js文件本身是gbk编码的在页面引入的时候也是gbk,即:
<script type="text/javascript" src="../js/xx.js" charset="GBK"></script>
jquery ajax提交的content type我查了下默认是utf-8
也就是说,我在服务器dispatchaction中接收参数的时候,也应该自动为我转成utf-8,但是现在乱码了
我自己怀疑的原因,首先这个dispatchaction是有一个校验validateform的,action中的request是经过校验转发过来的,我不清楚这是否有影响,期望高手能告诉我一下,多谢了.
------解决方案--------------------jsp页面、js文件、request 要保持编码一致。
------解决方案--------------------前台使用
window.encodeURI(window.encodeURI("str"));
进行编码,然后后台再去解码,使用
String cityParam = request.getParameter("city");//前台参数
String city = "";
try {
city = java.net.URLDecoder.decode(cityParam,"UTF-8");//解码
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
------解决方案--------------------
这个我也不太了解,我查了一下,struts提交表单时没有设置编码,默认是按照ISO-8859-1编码提交的