关于使用jsp时出现中文乱码的解决方案总结

时间:2023-01-26 21:43:35

相信很多人在java web 设计过程中都会遇到中文乱码问题吧! 常出现的问题有:“汉字变成了‘?’”、“显示的中文变成常人无法知晓的东东”......

出现这种现象的原因,概括而言就是不同环节的编码方式不同,导致了转换过程出现了乱码问题!

1.在显示jsp页面时

在每个jsp页面首行添加如下代码即可:

<%@ page language="java"  contentType="text/html;charset=utf-8" %>

<%@ page language="java"pageEncoding="utf-8" %>

这里说明一点,contentType中的charset和pageEncoding的区别:

contentType的是指服务器发送给客户端时的内容编码

是jsp文件本身的编码 (当两者同时声明时,pageEncoding优先级较大!)

2.在获取请求参数时

在通过request对象获取请求的参数及其值时,需进行字符串转换,以支持中文显示,具体代码如下:

<%
String name=(String)request.getParameter("xxx") ;
String  namezh=new String(name.getBytes("iso8859-1"),"utf-8");
%>

3.Servlet输出响应

用户在编写Servlet时,需要针对不同的请求方法实现不同的实现接口(如doGet、doPost等接口),在实现这些 接口时需要设置字符集编码 ,以doGet接口为例,具体代码如下:

public void doGet(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException {

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

......

}

笔者建议,最好把这两句语句写在函数体的开端!

终于写完了,这是第一篇技术博客哦!作为菜鸟,上述的总结不免有部分不当之处,望各路有才之士指点!多多指教!