(1)在JSP中,pageEncoding=“gbk”:是作用jsp文件转成java文件的编码。(以什么方式读取jsp)
charset:是作用服务器返回客户端使用的编码。(以什么方式把这个jsp返回到
客户端)
运行过程:
①jsp页面 --> 根据pageEncoding编码生成java源文件 --> 编译器生成utf-8的字节码文件class --> 服务
器根据charset编码把字节码解释生成数据,并返回到客户端
②java源文件 -->编译器会把各种编码的源文件统一生成utf-8编码的字节码文件
(2)在一个jsp页面中,指定了pageEncoding,没有指定charset。那么会以pageEncoding返回客户端
指定了pageEncoding,指定charset。那么会以charset返回客户端
没有指定pageEncoding,指定charset。那么会以charset返回客户端
没有指定pageEncoding,没有指定charset。那么会以 ISO8859-1返回客户端
(3)其他的设置编码格式的方式
①request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码(语句放在获取属
性之前,如果你放在属性之后,就使用了默认编码)
(对于在servlet中获取到正确中文数据,只有使用post方式提交数据,这个方法才有效。如果采用url或者
get方式传递参数。系统会采用默认的ISO- 8859-1编码对参数获取。当然,可以改tomcat配置文件,或者
getBytes,然后在转码获取)
②response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码(与charset的
作用是一样的)
(4)myeclipse中的properties(alt+enter) 会显示当前工程,文件(java,html,jsp)的编码格式。要想读取完整的数
据,需要使用对应的编码格式
总结:你要明白一个文件是以什么编码存放的,然后就用相应的编码获取它