array(2) { ["docs"]=> array(0) { } ["count"]=> int(0) } 111string(0) "" int(1) int(10) int(70) int(8640000) string(13) "likecs_art_db" array(1) { ["query"]=> array(1) { ["match_all"]=> object(stdClass)#28 (0) { } } } array(1) { ["createtime.keyword"]=> array(1) { ["order"]=> string(4) "desc" } } int(10) int(0) int(8640000) array(2) { ["docs"]=> array(0) { } ["count"]=> int(0) } 解决jsp的中文乱码问题 - 爱码网

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” %>

相关文章: