java开发中遇见的乱码问题
最近在工作过程中遇见了乱码问题,经过查阅资料成功的解决了这个问题。
1.将后台的内容(包含中文字符)以json格式传递到前台,前台用jquery的$.get()的方式接受,结果得到的内容为乱码(乱码是?????的形式)。
解决方法:在你的action类的方法中添加添加一条代码
response.setCharacterEncoding("UTF-8");
这样在前台就能接收到中文字符了。
2.从前台传到后台的字符串为乱码,也是以$.get()的方式传递。后台得到的乱码不是问号的形式。
解决方法: 方法1
首先在前台进行编码。
var val = document.getElementById("elementId").value;
var encodeVale = encodeURI(val);
后台进行解码。
String str = request.getParameter("p"); //假设你在前台传递的JSON串的键值是"P"
str = URLDecoder.decode(str,"UTF-8");
方法2
前台不编码,在后台用另一种方法解码。
后台解码代码为:
String str = request.getParameter("p"); //假设你在前台传递的JSON串的键值是"P"
str = new String(str.getBytes("iso8859-1"),"UTF-8");
经过测试,以上两种方法都可以。
注:若有错误请发邮件(wxljpro@163.com),共同进步。