JSP页面编码
Page character encoding指的是JSP文件和Tag文件本身的编码格式。
- 如果web.xml中<jsp-config>元素中配置了<page-encoding>,页面上page指令的pageEncoding属性必须和web.xml中<jsp-config>元素中的<page-encoding>元素指定的page-encoding一致,否则会导致转换错误。也就是说<page-encoding>配置和pageEncoding属性其实是等价的。
- 如果page指令没有pageEncoding属性和<page-encoding>配置,但有contentType属性,则最终采用contentType属性中的charset。如果contentType也没有charset ,则默认采用ISO-8859-1。
- 如果有pageEncoding或<page-encoding>,它们的优先权比contentType属性的charset高。
- 有一种例外情况,就是在文件中发现了byte order mark(BOM),此时BOM就相当于<page-encoding>。如果BOM映射的字符编码与pageEncoding或contentType中的charset不同,一样会导致转换错误。
总结:在判定pageEncoding时,BOM优先权最高,其次是pageEncoding和<page-encoding>,然后是page指令的contentType,最后是ISO-8859-1。
响应编码
响应的编码根本上是由Servl