项目使用的是UTF-8编码,用get方式提交的时候发现URL中如果有中文,响应页面将得到乱码。然后在tomcat的server.xml中添加了get方式和url访问解决乱码的方式useBodyEncodingForURI="true",
并在响应页面中添加了request.setCharacterEncoding("GB2312");//乱码转换
response.setContentType("text/html;charset=GB2312");
response.setCharacterEncoding("GB2312");但是得到的还是乱码。
后来把项目改成GB2312编码,get方式提交可以得到正常的中文。后来通过百度和googl的编码得到了启发。百度中输入中文搜索,url中显示的是中文。google输入中文进行搜索,url中显示的是带%的编码。说明百度用的是GB2312编码,中文可以正常解析。google用的是UTF-8编码,所以需要对中文进行转码。
下面是我项目中的解决方案:
1、在请求页面中把中文参数进行转码
如:String content="测试短信";
content=URLEncoder.encode(content,"UTF-8");
2、在接收参数的响应页面进行中文参数的解码
如:String message= URLDecoder.decode(request.getParameter,"UTF-8");
经过这次的问题,个人认为还是用GB2312编码比较省事。
posted on 2011-09-30 11:34
kelly 阅读(1509)
评论(0) 编辑 收藏 所属分类:
java