java Web jsp解决乱码问题。

主要有以下四种方式可以设置编码,即 pageEncoding、contentType、request.setCharacterEncoding 和 response.setCharacterEncoding
事实上,一个JSP的源文件需要经过三个阶段,两次编码,才能完成一次完整的输出,这三个阶段是:
第一阶段:转译(.jsp -> .java;pageEncoding -> UTF-8)。将jsp编译成Servlet(.java)文件。 
第二阶段:编译(.java -> .class;UTF-8 -> UTF-8)。从Servlet文件(.java)到Java字节码文件(.class)
第三阶段:编译(UTF-8 -> contentType)。
pageEncoding=”UTF-8” 的作用是设置JSP编译成Servlet时使用的编码。
contentType=”text/html;charset=UTF-8” 的作用是将所生成的UTF8形式的二进制码以charset的编码形式来输出到客户端。
request.setCharacterEncoding(“UTF-8”)用来指定对浏览器发送来的数据以特定的字符集进行重新编码,常用于对 POST 请求参数进行解码。
response.setCharacterEncoding(“UTF-8”)的作用是:在服务器将响应返回到浏览器前,对响应使用指定字符集进行重新编码。一旦使用了该种方式,即使该响应页面指定了具体的 contentType,也将失效。
特别需要注意的是,pageEncoding 的默认值是 “ISO-8859-1”, contentType 的默认值是 “text/html;ISO-8859-1”。

详情可以参考
https://blog.csdn.net/uftjtt/article/details/80108038

posted on 2019-05-19 23:14  杨伟国  阅读(486)  评论(0编辑  收藏  举报