jsp乱码问题
来源:互联网 发布:js array sort 编辑:程序博客网 时间:2024/05/23 19:56
一、JSP中文乱码的根源
1.JSP程序存在有与Servlet程序完全相同的中文乱码问题
- 输出响应正文时出现的中文乱码问题
- 读取浏览器传递的参数信息时出现的中文乱码问题
2.JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题
- JSP引擎将JSP源文件翻译成的Servlet源文件默认采用UTF-8编码,而JSP开发人员可以采用各种字符集编码来编写JSP源文件,因此,JSP引擎将JSP源文件翻译成Servlet源文件时,需要进行字符编码转换。
- 如果JSP文件中没有说明它采用的字符集编码,JSP引擎将把它当作默认的ISO8859-1字符集编码处理。
3.如何解决JSP引擎翻译JSP页面时的中文乱码问题
- 通过page指令的contentType属性说明JSP源文件的字符集编码
- page指令的pageEncoding属性说明JSP源文件的字符集编码
- 在部署描述符中说明一组JSP源文件的字符集编码
<jsp-property-group>
<url-pattern>/jsp/*</url-pattern>
<page-encoding>GB2312</page-encoding>
</jsp-property-group>
</jsp-config>
二、JSP引擎翻译,JSP页面时的中文乱码问题
1.编写内容如下的JSP文件:
<%
out.println("hello中国");
%>
2.用浏览器和telnet程序查看返回结果
3.分析生成的Servlet源文件内容
4.分析乱码原因
5.解决措施
6.JSP源文件内容与输出内容编码不一致的实验
7.内容以中文字符开始的JSP源文件的实验
8.在部署描述符文件中说明JSP源文件的字符集编码的实验
三、静态引入时的中文乱码问题
动手体验:静态引入时的中文乱码问题
四、<jsp:param>标签传递中文参数时的问题
动手体验:<jsp:param>标签传递中文参数时的问题
五、JSP程序所涉及到的字符编码转换
六、JSP中文乱码的总结分析
1.可能原因:
- Servlet程序从请求消息中获取请求参数和从数据库、文件、键盘等外设中读取一个字符串时都要将底层的字节流转换成字符串,但转换过程中指定的字符集编码与外设所输入内容的字符集编码不一致。如果某个第三方API将底层设备中的字节流数据总是按ISO8859-1转换成字符串返回,那么,对于底层设备中的GB2312编码的中文字符来说,返回的将不是其正确的Unicode码,这时候可以通过如下语句来解决:
- Servlet程序将字符串输出到浏览器、屏幕、文件和数据库时都要将字符串转换成底层的字节流,但转换过程中指定的字符集编码与外设所能显示的字符集编码不一致。
- JSP引擎将JSP源文件翻译成Servlet源文件时,其选择的字符集编码与JSP源文件实际使用的字符集编码不一致。
- JSP引擎编译由JSP源文件翻译成的Servlet 源文件时,其选择的字符集编码与Servlet 源文件的字符集编码不一致。
2.诊断方法:
- 使用System.out.println语句在命令行窗口中打印出现乱码的字符串
- 跟踪某个中文字符在JSP页面运行过程中的每个阶段的编码值
0 0
- JSP中的乱码问题
- 关于jsp乱码问题
- jsp中文乱码问题
- JSP中的乱码问题
- JSP 乱码问题
- 【Jsp中文乱码问题】
- JSP乱码问题
- jsp中的乱码问题
- jsp 页面乱码问题
- jsp 中文乱码问题
- jsp乱码问题
- JSP中文乱码问题
- JSP中文乱码问题
- JSP中文乱码问题
- 解决jsp乱码问题
- JSP中的乱码问题
- JSP中文乱码问题
- JSP中的乱码问题
- UVA 508 Morse Mismatches
- 每日一道算法题:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- centos7 禁用ip6
- WinForm企业应用框架设计——笔记
- Lua学习笔记之tables与objects
- jsp乱码问题
- leetcode binary tree maximum path sum
- 《数据结构》C++代码 散列表
- Cocos2d-x移植到WindowsPhone8移植问题-libNetwork库移植问题
- AbstractFactory模式讲解
- The connection to adb is down, and a severe error has occured完整解决办法
- UPX 3.91W 中文帮助
- Android 在Ubuntu12.04上配置两个JDK
- HDU 2051 10进制转化为2进制