TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
相信很多人在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"); ...... } 笔者建议,最好把这两句语句写在函数体的开端! 终于写完了,这是第一篇技术博客哦!作为菜鸟,上述的总结不免有部分不当之处,望各路有才之士指点!多多指教! |
|