日期:2014-05-17  浏览次数:20673 次

求答案 java web 关于乱码问题
在servlet内加入语句
PrintWriter out=response.getWriter();
out.println("<script>");
out.println("alert('登陆成功');");
out.println("window.location.href='index.jsp'");
out.println("</script>");

弹出的对话框是乱码 如何解决?

------解决方案--------------------
加上response.setContentType("text/html;charset=GB2312");试试。
------解决方案--------------------
1:加filter
2:response.setContentType("text/html;charset=UTF-8")
3:工程下的jsp和java文件编码是否统一
4:以上方法都不行,转码/

------解决方案--------------------
一般的方法是用filter,所有的请求都经过过滤器过滤一下。
------解决方案--------------------
首先说一句吧,二楼正解。在此抛砖引玉,对乱码问题做一个简单的总结。
在请求阶段,也就是得到参数的阶段,如果是post方式提交的,可以使用
request.setCharacterEncoding("utf-8");方式来设置编码集,这一句一定要
放在开始去参数之前,否则无效。
如果是get方式提交的,一种方法是用笨法子,把得到的参数重新编码。比如得到的
参数name,打印出来是乱码,你就可以在下面加一句
name = new String(name.getBytes("iso-8859-1"),"utf-8");
这样name就是可以显示中文的了。当然也可以使用一劳永逸的法子,把tomcat中的
配置参数改了(如果是其他的服务器也应该有改法),找到server.xml中的<Connector>
在其中添加URIEncoding="UTF-8",这样所有get提交的数据都会以utf-8的方式编码,乱码
问题就解决了。
如果是使用了struts框架,那么有些方法就不能用了,这时候使用过滤器就比较好了,特别是
应用很多的时候,每个源文件中都要写那些东西,很繁琐,使用过滤器就方便很多了,过滤器的
编写也很简单,请参照其他程序,在此不再赘述。