目前为止,接触了蛮多乱码问题,一般按照下面几种方式都可以解决:
get 请求的:页面用js编码,后台用Java解码,
post:① request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
②在web.xml文件中,添加编码 <filter>
③String reserve1= new String(request.getParameter("reserve1").getBytes("iso-8859-1"),"utf-8");
后台用这种方式转。第一个问题:一般都是套用这几种,哪种对选哪个,可时间长了,就想知道是为什么,网上也查找了相关资料,但看的要么是不明白,要么是感觉没讲到点。希望各位大大可以推荐我一些资料了解了解
第二个问题:用纯springmvc来做一个ajax传递数据:tomcat编码,页面编码,web的fileter编码,都是GBK,整个项目也是。
代码如下: $(function() {
$("#add").click(function() {
var userName=window.encodeURI($("#userName").val());
var age=$("#age").val();
var user={userName:userName,age:age};
$.ajax({
url:"/SpringMVC6/user/data/addUserJson",
type:"get",
data:user,
success:function(data){
alert("userName "+data.userName+"---age--"+data.age);
}
})
});
});后台代码如下:
@RequestMapping("/addUserJson")
public String addUserJson(User user,HttpServletRequest request) throws UnsupportedEncodingException{
System.out.println("userName "+user.getUserName());//第一个结果
String name = java.net.URLDecoder.decode(user.getUserName(),"GBK");
System.out.println("name GBK"+name);//第二个结果
String name2 = java.net.URLDecoder.decode(user.getUserName(),"UTF-8");
System.out.println("name2 utf-8"+name2);//第三个结果
request.setAttribute("userName", user.getUserName());
request.setAttribute("age", user.getAge());
return "/userManager";
}
后台打印:
userName %E9%BE%99%E8%91%B5
name GBK榫欒懙
name2 utf-8龙葵
我是超级不明白,为什么最后一种居然会对,应该是没有哪里有涉及到utf-8吧,
感觉这里写的也有些复杂,有没有其他更简单的解决乱码方式呢?
get 请求的:页面用js编码,后台用Java解码,
post:① request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
②在web.xml文件中,添加编码 <filter>
③String reserve1= new String(request.getParameter("reserve1").getBytes("iso-8859-1"),"utf-8");
后台用这种方式转。第一个问题:一般都是套用这几种,哪种对选哪个,可时间长了,就想知道是为什么,网上也查找了相关资料,但看的要么是不明白,要么是感觉没讲到点。希望各位大大可以推荐我一些资料了解了解
第二个问题:用纯springmvc来做一个ajax传递数据:tomcat编码,页面编码,web的fileter编码,都是GBK,整个项目也是。
代码如下: $(function() {
$("#add").click(function() {
var userName=window.encodeURI($("#userName").val());
var age=$("#age").val();
var user={userName:userName,age:age};
$.ajax({
url:"/SpringMVC6/user/data/addUserJson",
type:"get",
data:user,
success:function(data){
alert("userName "+data.userName+"---age--"+data.age);
}
})
});
});后台代码如下:
@RequestMapping("/addUserJson")
public String addUserJson(User user,HttpServletRequest request) throws UnsupportedEncodingException{
System.out.println("userName "+user.getUserName());//第一个结果
String name = java.net.URLDecoder.decode(user.getUserName(),"GBK");
System.out.println("name GBK"+name);//第二个结果
String name2 = java.net.URLDecoder.decode(user.getUserName(),"UTF-8");
System.out.println("name2 utf-8"+name2);//第三个结果
request.setAttribute("userName", user.getUserName());
request.setAttribute("age", user.getAge());
return "/userManager";
}
后台打印:
userName %E9%BE%99%E8%91%B5
name GBK榫欒懙
name2 utf-8龙葵
我是超级不明白,为什么最后一种居然会对,应该是没有哪里有涉及到utf-8吧,
感觉这里写的也有些复杂,有没有其他更简单的解决乱码方式呢?
解决方案 »
- 关于orcale读出大量数据写入txt文件,内存溢出
- eclipse的问题???
- mysql+jsp
- HibernateTemplate中这段getSession()方法的代码 是什么意思啊 ?
- 求《开发自己的搜索引擎——Lucene 2.0+Heriterx》这本书的示例源代码!
- 问个菜鸟问题,大家来拿分,关于<html:html locale="true">
- 奇怪啊!使用JSTL后,总是显示错误,但是运行却没有问题.
- hibernate问题,hibernate高手或自认为是高手的都入,^_^ 100分!谢谢
- hibernate的模糊搜索和分页
- java向sybase12.5插入数据时显示"??",要死人了
- spring @Scheduled 定时任务
- API是什么意思
看到了,居然是utf-8的。
看错了,我看了两个页面,一个是平常的网页(utf-8),一个是我自己写的页面的,还是GBK编码,应该是没有影响的。