jsp中文乱码
来源:互联网 发布:ps4数据导入pro主机 编辑:程序博客网 时间:2024/06/05 09:30
就是 Mozilla的 Character encoding, 或者是 IE6的 encoding. 例如 JSPtw Forum 用的contentType就是 Big5.
pageEncoding -- 指定JSP编写时所用的编码
如果你的是 WIN98, 或 ME 的NOTEPAD记事本JSP, 就一定是常用的是Big5 或 gb2312, 如果是用 WIN2k winXP的NOTEPAD時, SAVE时就可以选择不同的编码, 包括 ANSI(BIG5/GB2312)或 UTF-8 或 UNIONCODE(估是 UCS 16).
因为JSP要经过两次的"编码", 第一阶段会用 pageEncoding, 第二阶段会用 utf-8 至utf-8, 第三阶段就是由TOMCAT出來的网页, 用的是contentType.
阶段一是 JSPC的 JSP至JAVA(.java)原码的"翻译", 它会根据pageEncoding 的设定读取JSP. 结果是 由指定的 pageEncoding(utf-8,Big5,gb2312)的JSP 翻译成统一的utf-8 JAVA原码(.java). 如果pageEncoding设定错了, 或沒设定(预设ISO8859-1), 出来的 在这个阶段就已是中文乱码.
阶段二是由 JAVAC的JAVA原码至JAVA BYTECODE的编译. 不论JSP的编写时是用(utf-8,Big5,gb2312),经过阶段一的结果全都是utf-8的ENCODING的JAVA原码.
JAVAC用 utf-8的ENCODING读取AVA原码, 编译成字串是 utf-8 ENCODING的二进制码(.class). 這这是 JAVA VIRTUAL MACNHINE 对常数字串在 二进制码(JAVA BYTECODE)內表单的规范.
阶段三是TOMCAT(或其的application container)载入和执行 階段二得来的JAVA二进制码, 输出的结果( 也就是BROWSER(客戶端)) 見到的. 这时一早隐藏在階段一和二的参数contentType, 就发挥了功效.
由上可知,
1.如果在jsp页面里有中文,则在显示时不出现乱码,就要设置contentType为gbk,big5,gb2312或utf-8。
2.在日文系统下,jsp页面里有中文,则不仅要设置contentType,还得设置pageEncoding为gbk,big5,gb2312,否则可能出现乱码。
默认情况下,浏览器使用utf-8发送请求,服务器(tomcat/webshere/weblogical等)接收请求后默认使用的是iso8859-1。这时如果在java程序里处理中文就可能出现乱码。
解决方案:request.setCharacterEncoding("gb2312");转换字符集后处理。
3.struts中的中文问题
Struts中,浏览器发送请求后, 在action里取值时,无论怎么转码都是乱码,不管用form.get,还是request.get方法。
这是由于,form中的字段已经由struts将请求中的数据组装到form里了,此时已经为乱码,使用的字符集为服务器默认的字符集,所以在action里取值时,无论怎么转码都是乱码,不管用form.get,还是request.get方法
解决方案:做一个过滤器,在请求到来时,让过滤器过滤请求编码字符集。
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException
{
srequest.setCharacterEncoding(“gb2312”);
chain.doFilter(srequest,sresponse);
}
- Jsp中文乱码小议
- Jsp中文乱码小议
- jsp中文乱码问题
- Jsp中文乱码小议
- JSP中文乱码处理
- JSP中文乱码处理
- JSP中文乱码解决之道
- JSP中文乱码处理
- 【Jsp中文乱码问题】
- jsp 中文乱码问题
- tomcat jsp 中文乱码
- JSP中文乱码问题
- JSP中文乱码问题
- JSP中文乱码问题
- JSP中文乱码解决
- JSP中文乱码问题
- jsp中文乱码解决方案
- 解决jsp中文乱码
- 解决win7和fedora 15双系统,重装win7后对fedora 15的grub引导修复记
- Windows上调试FAT文件系统代码工具一
- .NET 大型数据处理思路?
- java.lang.String中的trim()方法的详细说明
- 利用C#实现分布式数据库查询
- jsp中文乱码
- POJ 2328 Guessing Game(我的水题之路——猜数字测谎)
- Java中的中文乱码产生原理
- Be slow,Be quiet!!
- 何必言精通——十年杂感
- 何必言精通——十年杂感
- 揭秘IT人才特点:中美印日四国程序员比较
- asp.net 上传excel到数据库
- 亿万富翁是怎么炼成的