接触JSP难免会遇到Java的中文乱码问题,对于不同的情况,有不同的解决方法。以下是我所遇到的乱码问题以及查阅的一些解决方法。
一、页面编码不一致导致的乱码问题
这个乱码问题是最简单的乱码问题,一般新手会出现。看以下JSP页面代码:
中文乱码原因:
上述页面里三个地方出现了编码
1.pageEncoding="UTF-8":pageEncoding属性的作用是指定JSP页面的编码格式(或者说是以什么编码格式存储)Java IDE(如MyEcljpse)会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。
2.contentType="text/html;charset=iso8859-1":contentType属性的作用是指定服务器出请求完成后回应给浏览器的内容类型。因为pageEncoding指定了存储格式为UTF-8,但是contentType却指定JSP文件被解码为iso8859-1,这样如有中文肯定出乱码,所以两者必须一致。
3.content="text/html; charset=UTF-8":content控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式不会产生影响。但有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面,导致浏览器混淆了编码格式。出现了乱码。
中文乱码解决方案:
步骤一、统一JSP页面中的pageEncoding、contentType和content的编码格式。修正后的代码如下:
步骤二、设置IDE(笔者用的是MyEclipse)的JSP页面的编码格式,将其统一设置为UTF-8。具体的设置方法可参见一下链接的文章:
(Eclipse)http://blog.csdn.net/cxwen78/article/details/6400798
(MyEclipse)http://cavonchen.iteye.com/blog/681810
二、表单使用Post方式提交后接收到的乱码问题
运行结果:用户名输入“中文”,提交后,下面的“userName的值”后面就出现了乱码。
这个问题也是一个常见的问题。这个乱码也是tomcat的内部编码格式iso8859-1在捣乱,也就是说post提交时,如果没有设置提交的编码格式,则会以iso8859-1方式进行提交,接受的jsp却以utf-8的方式接受。导致乱码。既然这样的原因,下面有几种解决方式,并比较。
1、接受参数时进行编码转换:String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") ; 这样的话,每一个参数都必须这样进行转码。很麻烦。但确实可以拿到汉字。
2、接受参数时进行编码转换:在请求页面上开始处,执行请求的编码代码, request.setCharacterEncoding("UTF-8"),把提交内容的字符集设为UTF-8。这样的话,接受此参数的页面就不必在转码了。直接使用String
str = request.getParameter("something");即可得到汉字参数。但每页都需要执行这句话。这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。
采取这种方式解决修改后的代码如下:
对比可知,添加了request.setCharacterEncoding("UTF-8"),运行结果如下:正确显示“中文”
3、接受参数时进行编码转换:为了避免每页都要写request.setCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。这个网上有很多例子。请大家自己Baidu和Google查阅。
关于JSP中文乱码的问题还有一些,比如表单get提交方式的乱码、脚本代码关于url请求,接受到的参数乱码、上传文件时的乱码、数据库乱码等等,未完待续...
分享到:
相关推荐
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。
JSP中文问题解决办法,JSP页面传值,数据库等的中文乱码解决办法
jsp中文乱码的处理 页面显示 表单提交 数据库操作JSP中文乱码处理
对常见中文乱码问题进行了详细介绍和解释,希望能给大家以帮助。
JSP中文乱码
JSP中文乱码问题解决总结,个人收集,一次放出,减少大家的查找时间。
Tomcat环境下JSP中文乱码问题的解决
JSP中文乱码问题的最优解决方法
本文档详细地介绍了如何解决MySql数据库中的中文乱码问题,此问题的解决将极大地帮助基于MySql的PHP编程、JSP编程、Servlet编程及C#或.Net编程!测试过的开发平台包括 Netbeans和Eclipse。测试过的服务器包括Apache、...
在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法。
JSP中文乱码.pdfJSP中文乱码.pdfJSP中文乱码.pdfJSP中文乱码.pdfJSP中文乱码.pdfJSP中文乱码.pdfJSP中文乱码.pdfJSP中文乱码.pdfJSP中文乱码.pdf
jsp eclipse乱码分类及解决办法
中文乱码问题解决&&乱码问题解决&&中文乱码问题解决&&乱码问题解决
彻底解决Servlet及jsp解决中文乱码问题
servlet与jsp中文乱码处理,详细介绍多种乱码处理方法,包括使用过滤器的方法
这是我收集的最全的解决JSP中文乱码的文章了 其中前面几个万能解决方法是我归纳出来的,不要怕分多,因为我太缺分了,绝对值10分
中文乱码是jsp动态网站开发中经常遇到的问题,该文从产生jsp中文乱码的范例消除乱码的具体方案,具有实用性和易操作性。
JSP中文乱码问题综述,中文乱码解决大全,表单使用Post方式提交后接收到的乱码问题,表单get提交方式的乱码处理方式,上传文件时的乱码解决,Java代码关于url请求,接受参数的乱码,关于jsp在MyEclipse中打开的乱码问题,...
JSP中文乱码解决集锦JSP中文乱码解决集锦JSP中文乱码解决集锦