当前位置:编程学习 > JAVA >>

JSP与Servlet乱码求解决

我做了一个小功能,就是在JSP页面中的留言删除。当我点击删除,此处超链接到对应的Servlet。然后在Servlet中用if条件判断是否成功删除。弹出了这么一句话

out.print("<script>alert("此处出现的是乱码")</script>");

找个很多问题。这样同样的代码,我在JSP页面中,不出乱码。

求解决!!求解决 --------------------编程问答-------------------- response没有设置编码方式

--------------------编程问答-------------------- response.setContentType("text/html;charset=utf-8");
或者
response.setCharacterEncoding("utf-8"); --------------------编程问答-------------------- 楼上说的,我有。还是这样。 --------------------编程问答-------------------- <%@ page language="java" pageEncoding="UTF-8"%>
 页面的编码要和后台(#2所说的)一致。

还有最好把这个写全:
out.print("<script type='text/javascript'>alert("此处出现的是乱码")</script>") --------------------编程问答-------------------- request.setCharacterEncoding("gbk"); --------------------编程问答-------------------- jsp和servlet的编码方式必须一致...... --------------------编程问答-------------------- 编码格式已经是统一的了。4楼的没试过。我现在试下。 --------------------编程问答-------------------- 不行啊,大侠们。  你们说的我都已经试过了。弹出的对话框依然是乱码。。。 --------------------编程问答-------------------- public void doPost(HttpServletRequest request, HttpServletResponse response) {
/**
 * 防止添加数据乱码
 */
try {
request.setCharacterEncoding("gbk");
} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();
}
 你看看这个 能不能帮到你啊  --------------------编程问答-------------------- encodeURI("字符串 ")试试看~~ --------------------编程问答--------------------
引用 8 楼  的回复:
不行啊,大侠们。  你们说的我都已经试过了。弹出的对话框依然是乱码。。。

后台Controller中的代码:
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");

前台JSP中的代码:
<%@ page language="java" pageEncoding="UTF-8"%>
.......
out.print("<script type='text/javascript'>alert("此处出现的是乱码")</script>")

把所有编码都统一了,在实施看行不。 --------------------编程问答-------------------- 不知道lz修改代码后有没有重启?

如果还是不行,那就在你的工程上左键 》 properties 》 Resource 中将工程使用的字符集修改为UTF-8,然后从新编译(project > clean 再 project > build Automatically)从新发布工程试试。 --------------------编程问答--------------------

response.setContentType("text/html;charset=utf-8");
或者
response.setCharacterEncoding("utf-8");
--------------------编程问答-------------------- response.setContentType("text/html;charset=utf-8");

代码发的全点, --------------------编程问答-------------------- 将软件的jsp编码设置为UTF-8
在将文件的设置为UTF-8, --------------------编程问答-------------------- 那就应该是数据库的问题  是不是mysql数据库啊 
--------------------编程问答-------------------- 如若都不行,你修改下Tomcat中的配置文件,server.xml,在你所用的端口那一段加个URIEncoding="utf-8"试试 --------------------编程问答-------------------- 把所有的编码都统一写成UTF-8 过滤器也一样 应该就没有乱码了。 --------------------编程问答-------------------- 楼主  你设置之后重启服务器了么

设置一下web的编码格式 UTF-8 --------------------编程问答--------------------   你设置下字符编码,看一样不或者你做个国际化,把汉字都转换下试试看 --------------------编程问答-------------------- 看看是不是那个文件本身编码错误了,选择 文件——>另存为——>编码格设为为UTF-8 --------------------编程问答-------------------- 你连接到Servlet里面如火获取的某个值
     删除时候获取他的Id
加入:

String id=request.getParameter("id");
String id1=nwe String("ISO-8859-1","gbk"【也可写utf-8看看你的代码给予那种】);//设置编码格式
int id=Integer.parInt(id1);
因为在你获取值时候可能乱码,所以你要再次编码一下
如果还不行,把你的代码发过来! --------------------编程问答-------------------- 直接统一各个页面的编码方式,不要用ISO-8859-1 --------------------编程问答-------------------- response.setContentType("text/html;charset=GB2312");
--------------------编程问答-------------------- 你应该是有这么一句话才会弹出的...  既然你的程序没有乱码问题就是多了这么一句话可能因为alert不就是弹框用的么... --------------------编程问答-------------------- 把所有的都设置成utf-8 --------------------编程问答-------------------- 在servlet里面设置response编码方式即可
例如输出编码设置为gbk:response.setCharacterEncoding("gbk"); --------------------编程问答-------------------- 解决乱码5步:希望对楼主有帮助
以Tomcat5.0为WEB服务器时,如何防止中文乱码。     
1、对于同一个应用,最好统一编码,推荐为UTF-8,当然GBK也可以。     
2、正确设置JSP的pageEncoding="UTF-8" 
3、在所有的JSP/Servlet中设置contentType="text/html;charset=UTF-8"或response.setCharacterEncoding("UTF-8"),从而间接实现对浏览器编码的设置。     
4、对于非表单提交的get或url请求,可以修改Tomcat的默认配置,推荐将useBodyEncodingForURI参数设置为true,也可以将URIEncoding参数设置为 UTF-8(有可能影响其他应用,所以不推荐)。或者用下面的方法,在接收数据时处理:
  request.getParameter("userID"),得到userID的值   
  request.getParameter("userID").trim()将这个值去掉两边的空格   
  request.getParameter("userID").trim().getBytes("ISO-8859-1"))将这个String用ISO-8859-1编码成一个字节数祖   
  new   String(request.getParameter("userID").trim().getBytes("ISO-8859-1"),"utf-8")将刚才的字节数祖传进string的构造函数按照"utf-8"编码创建一个string对象。 
5.使用URLEncoder的方法
传参前用: 
//使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式
String username_encoder = URLEncoder.encode(username,"UTF-8");
接参数后显示用:
//使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码
String username_decoder = URLDecoder.decode(request.getParameter("username"),"UTF-8");
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,