日期:2014-05-17  浏览次数:20700 次

JSP页面编码,理解的很模糊,有点牛角尖
看了其他人写的博文,一个JSP页面,如下
Java code

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>


contentType是页面内容的编码方式,pageEncoding是JSP页面的编码方式,可是在eclipse中右键JSP页面Properties更改Text file encoding又是什么?
tomcat中传值默认是ISO-8859-1,把页面值传到action或JSP中,默认是怎么处理的,一个参数从开始传递到传递到指定页面或action,上边这些编码方式起到了什么作用?乱码的时候编码方式在中间出了什么错?


------解决方案--------------------
pageEncoding是jsp文件本身的编码

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

JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。
------解决方案--------------------
http://obeno.iteye.com/blog/518112
这里有一篇文章说的不错 楼主可以参考一下
乱码问题是很常见的了 慢慢积累经验就好了 刚开始时候都是从一堆乱码中走过来的
解决不了的可以来发帖问
------解决方案--------------------
探讨

不是说这个细啊