1, JSP程序存在有与Servlet程序完全相同的中文乱码问题,
response对象的编码:response.setChar
告诉浏览器要使用什么编码来解析输给它的数据:response.setHeader()
request对象的编码问题
2, JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题
2-1:如果JSP源文件中没有说明它采用的字符集编码,JSP引擎会使用默认ISO8859-1字符集编码将jsp文件翻译成servlet。(这时如果jsp文件中有中文,那么翻译后的servlet会出现中文乱码)
2-2:Jsp文件可通过page指令的pageEncoding属性来说明jsp源文件本身数据的编码:
Jsp源文件保存在硬盘上时(即jsp源文件本身数据)采用的编码,假设为utf-8,
那么必须通过page指令的pageEncoding属性来标识,这个标识同时也通知jsp引擎要采用utf-8编码将这个jsp文件翻译成一个servlet,
如何解决JSP引擎翻译JSP页面时的中文乱码问题
使用page指令的pageEncoding属性 :指定jsp引擎要使用什么码表将硬盘上的jsp文件翻
译成servlet
使用page指令的contentType属性(该属性与response.setContentType()方法作用一样):
指定response对象使用什么码表将数据编码输出和浏览器解析数据要使用的码表
这两个属性的实例:
<%@ page pageEncoding=”utf-8” contentType=”text/html;charset=utf-8” %>
很多情况下,我们只需要设置pageEncoding属性,而不需要设置contentType属性,jsp引擎会根据pageEncoding属性,自动设置contentType属性的相应值
所以,我们一般就这样设置:<%@ page pageEncoding=”utf-8” %>