servlet中中文乱码问题的解决
2007-03-22 14:19
387 查看
一、 前台JSP页面传值,直接用servlet的request.getParameter()接收,若编码方式不一致,会产生乱码。
解决方式:重新编码。
例: 前台传参:
function do_search1(){
form1.action="../text?hy=所房琯改革改革";
form1.submit();
}
在servlet中接受:用request.getParameter()
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("<%@ page contentType=/"text/html; charset=GBK/" %>");
out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST methodff的方法");
out.println(request.getParameter("hy"));//直接取,显示乱码
//out.println("告诉你的话:"+new String(request.getParameter("hy").getBytes("ISO8859_1"),"GBK"));
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
解决:s=request.getParameter("hy");
s1=new String(s.getBytes("ISO8859_1"),"GBK"));
s1就是你想要的值。
注意:后面的编码方式不一定是GBK,主要是要与前台传来字串的页面的编码方式一致。
二、中文在servlet中输出到新的页面时,若不指定编码方式会产生乱码。
例:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<%@ page contentType=/"text/html; charset=GBK/" %>");
out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST methodff的方法");
System.out.println(request.getParameter("hy"));
out.println("告诉你的话:"+new String(request.getParameter("hy").getBytes("ISO8859_1"),"GBK"));
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
直接输出,产生乱码,“告诉你的话:"等中文显示乱码
解决: response.setContentType("text/html;charset=GBK");
注意:编码不一定是GBK,要与前台对应。
解决方式:重新编码。
例: 前台传参:
function do_search1(){
form1.action="../text?hy=所房琯改革改革";
form1.submit();
}
在servlet中接受:用request.getParameter()
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("<%@ page contentType=/"text/html; charset=GBK/" %>");
out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST methodff的方法");
out.println(request.getParameter("hy"));//直接取,显示乱码
//out.println("告诉你的话:"+new String(request.getParameter("hy").getBytes("ISO8859_1"),"GBK"));
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
解决:s=request.getParameter("hy");
s1=new String(s.getBytes("ISO8859_1"),"GBK"));
s1就是你想要的值。
注意:后面的编码方式不一定是GBK,主要是要与前台传来字串的页面的编码方式一致。
二、中文在servlet中输出到新的页面时,若不指定编码方式会产生乱码。
例:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<%@ page contentType=/"text/html; charset=GBK/" %>");
out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST methodff的方法");
System.out.println(request.getParameter("hy"));
out.println("告诉你的话:"+new String(request.getParameter("hy").getBytes("ISO8859_1"),"GBK"));
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
直接输出,产生乱码,“告诉你的话:"等中文显示乱码
解决: response.setContentType("text/html;charset=GBK");
注意:编码不一定是GBK,要与前台对应。
相关文章推荐
- Ajax + jsp +servlet 中文乱码问题解决办法
- 关于解决从浏览器输入中文,经过web容器解析到达servlet中来出现的乱码问题
- Web---演示servlet技术(servlet生命周期),解决中文乱码问题
- servlet解决javascript传来中文乱码问题
- JSP+Servlet学习经验1:解决form表单提交后相应页面中文乱码的问题
- Ajax中文乱码问题解决方法(服务器端用servlet)
- 【WEB】jsp向servlet传参中文乱码问题解决
- 解决Get和Post请求中中文乱码问题 (2013-01-26 23:59:39)转载▼ 标签: javaee it 分类: JavaEE 对于Post请求,只需在Servlet或者jsp中写入如下
- 完美解决在Servlet中出现一个输出中文乱码的问题
- Servlet中文乱码问题解决办法
- servlet中文乱码问题及解决
- 解决servlet中out.print()跳转alert框中文乱码问题
- 解决servlet中文乱码问题
- 关于servlet中文乱码问题如何解决
- jsp传参 servlet接收中文乱码问题的解决方法
- jsp servlet mysql fckeditor等配合使用时出现中文乱码的解决问题!
- 完美解决在Servlet中出现一个输出中文乱码的问题
- Tomcat中用Filter解决JSP提交中文信息到Servlet的乱码问题
- jsp向servlet传值的中文乱码问题的解决
- Servlet及JSP解决中文乱码问题