首先,感谢你的阅读,本人观点:学习编程是个漫长的过程并不是一时就会很厉害的,关键是坚持,快乐地学习,在这里分享我的一些笔记给你;
置content-type的最高优先级就是在jsp页面设置<%@ page contentType=”text/html;charset=gb2312″%>了吗?还有没有地方设置,可以覆盖掉这个设置。曾今试过用过滤器设置contentType,但还是无效,好像优先级没有jsp页面设置的高 ———————-
想过一个笨办法,就是写个java程序读取所有的jsp,让后把<%@ page contentType=”text/html;charset=gb2312″%>换掉,但这种换法改动文件多,风险也大
contentType覆盖的,就是最后一次的设置才是最终结果。所以就没有什么优先级的问题,而是在什么地方设置是最后一次。个人认为在filter设置应该可以解决你的问题的。很多人都是用filter来解决编码的问题的。
GBK和GB2312编码的区别:GB2312只是GBK的一个子集,就是说,GBK包括所有的汉字(简体和繁体),而GB2312只包括简体。 还有一个要说明,在编码上没有优先级的问题,只有你设置的这个编码在什么时候起作用。 contentType的charset是指服务器发送给客户端时的内容编码,浏览器接收到后也是根据这个编码进行解码的,如果你设置的是GB2312,那么如果网页中有繁体字,那就会出现乱码,因为GB2312不可能表示繁体字。
解决办法:
1.对于请求,可以使用过滤器或者在每个JSP/Servlet中设置request.setCharacterEncoding(”UTF-8″)。当然设置成GBK也行,但是从占用空间来说,还是设置成UTF-8比较好,再说UTF-8是国际标准,可以显示所有中文(繁体和简体)。通过这一步,可以确保你提交的数据编码正确。
2.在所有的JSP/Servlet中设置contentType=”text/html;charset=UTF-8″或response.setCharacterEncoding(”UTF-8″),当然设置能GBK也行,但是如果那一天想显示日文,那就还需要换,所以还是建议设置成UTF-8.从而间接实现对浏览器编码的设置。经过这一步的设置可以保证浏览器显示正确。
3.对于同一个应用,最好统一编码,推荐为UTF-8,当然GBK也可以。
对于第二条,由于你以前设置的是GB2312,为了能正确的在浏览器页面中显示繁体字,需要更改JSP页面的contentType属性值,当然如果少的话,手动修改,如果很多,可以采用让电脑帮你完成,但是需要你自己写一个程序。
这里我只给你提供程序的思路,你自己去实现,这个应该来说是最基本的。
递归遍历你的JSP所在的目录以及该目录下的子目录和JSP文件,对于JSP文件,用BufferedReader封装FileReader,然后用readline()按行读取,并用正则表达式进行匹配,public String replaceFirst(”charset=gb2312″,
“charset=GBK”);然后读取下一个JSP文件,这个就把所有JSP文件中的contentType=”text/html;charset=gb2312″中的gb2312换成了UTF-8或GBK。
如果你的JSP文件不超过10000个,那应该几秒钟就可完成。
再补充一下,如果单纯采用过滤器,是不行的。如果你采用过滤器,在提交请求之前,你设置的编码是GBK,这个只是对你提交的数据进行编码,然后后台处理你的请求,处理后结果返回,这个时候,你可以对返回的结果进行重编码,还是在同一个过滤器中,要放在public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)方法之后,但是这个设置只是对服务器的返回数据进行的编码,当浏览器接收到数据之后,解码的时候仍然是采用你的JSP页面中的那个GB2312设置,所以,这个时候就是把GBK编码的数据转换成了gb2312的数据,对于简体字,没有问题,但是对于繁体字,就会出项乱码。 所以必须修改JSP页面中的contentType属性值,修改的办法,可采用我上面提到的方法。在jsp页面设置<%@ page contentType=”text/html;charset=gb2312″%>
contentType的charset是指服务器发送给客户端时的内容编码 这个算是最高优先级的 所有你还是得改jsp代码,没办法,
就写个程序去读取文件修改嘛,可以先备份一份所有文件嘛
页面定义的编码格式就是最后调用的了,不可能还有更慢调用的了,只能是替换掉jsp页面的编码格式了,要不全用资源文件的形式,当然工作量会更大
从基础的学习到后面应用提高都非常的系统,无论你是本专业的还是跨专业的,都能有所收获,参加4个月的达内时光转眼已逝,伴随着喜悦,达内给你一个新的平台,一个崭新的开始。
(本文由广州达内http://www.jvtarena.com/java.html为你分享;)
分享到:
相关推荐
javaweb期末作业--教师学生信息管理系统源码+数据库。网页设计与制作期末作业--html+css,Java设计模式平时作业和期末作业。 javaweb期末作业--教师学生信息管理系统源码+数据库。网页设计与制作期末作业--html+css...
基于javaweb的课程设计--奶茶销售管理系统源码+数据库.zip 95分以上高分必过项目,下载即用无需修改,项目完整确保可以运行。 基于javaweb的课程设计--奶茶销售管理系统源码+数据库.zip 95分以上高分必过项目,...
javaweb期末大作业-甜品店烘焙管理系统源码+数据库(高分项目),javaweb期末大作业-甜品店烘焙管理系统源码+数据库(高分项目)javaweb期末大作业-甜品店烘焙管理系统源码+数据库(高分项目)javaweb期末大作业-...
javaweb实训项目-基于JavaWeb的仿小米在线商城ShoppingMall源码.zip。基于JavaWeb的在线商城项目是我们专业大三上学期期末实训的项目。javaweb实训项目-基于JavaWeb的仿小米在线商城ShoppingMall源码.zip。基于...
JavaWeb期末大作业--在线相册管理系统源码+数据库文件.zip主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码、该项目可以直接使用、项目都经过严格调试,下载...
JavaWeb课程实习项目-基于ssm+mysql的酒店管理系统代码+数据库(高分项目),高分项目课程设计大作业开发的97分高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也...
超全面javaweb教程28天-day3_超全面javaweb第4天-_01_案例一在末尾添加节点
javaWeb作业-JavaWeb-master.zip
基于javaweb的管理系统-航空管理系统源码+数据库(课程设计大作业).zip 90分以上高分项目,必过啊。本项目基于javaweb的管理系统-航空管理系统源码,主要针对计算机相关专业的正在做毕设的学生和需要项Java学习者。...
JavaWeb课程设计---客户管理系统方案.doc
JSP+servlet+javabean学习 ...JavaWeb07-javaWeb模式.rar JavaWeb08-DBUtil.rar JavaWeb09-EL与JSTL.rar JavaWeb10-分页应用.rar JavaWeb11-图片验证码.rar JavaWeb12-文件上传.rar JavaWeb13-过滤器与监听器.rar
JavaWeb是一种基于Java技术的Web开发平台,它涵盖了服务器端编程、数据库交互、网页动态内容生成等多个方面。这份"JavaWeb学习资料---PDF格式.zip"压缩包提供了丰富的资源,旨在帮助学习者逐步掌握这一领域的核心...
总的来说,"明日科技的javaweb典型模块宝典--打印模块"涵盖了从前端页面设计到后端数据处理,再到与第三方库和系统的整合等一系列技术点。开发者通过学习和实践这个模块,不仅可以提升报表打印的专业技能,还能加深...
基于MVC的Javaweb项目-----简单的唱片管理销售平台 # 初学javaweb,制作简单唱片销售管理平台-附件资源
javaweb资源之apache-tomcat-10.1.19包
这个名为"javaweb520-JavaWeb-master.zip"的压缩包很可能包含了一个完整的JavaWeb项目实例,让我们来深入探讨JavaWeb开发的相关知识点。 1. **Servlet**:Servlet是JavaWeb开发的基础,它是一个Java类,用于扩展...
22qiu-javaweb-ch06-2.zip