|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
一、Include的页面乱码 现象:include进来的页面出现乱码,其它页面正常。 原因:Tomcat在缺省情况下使用ISO-8859-1编码,但是在include时有时Tomcat不能准确根据外层.jsp文件的编码解析include进来的文件,造成include进来的文件中的中文乱码。 解决:这儿可以有很多解决办法,但是对于我们的中文环境,从根本上的解决办法是将Tomcat 5.0.19的核心缺省编码从ISO-8859-1修改为GBK 。可以在下面地址下载修改过的jar文件, jasper-compiler.jar,jasper-runtime.jar位于/common/lib下,其它位于/server/lib下,将新的.jar文件替代原.jar即可。 二、提交的数据乱码 现象:通过表单提交的数据出现乱码。 原因:原因未明。可能是Tomcat在接收到哀求后,并没有能够根据request中的信息提前准确的编码方法。 解决:可以添加一个设置字符集的Filter。 //=================初学者注重,请将此文件放在WEB-INFclassesfilters下, //注重先以SetCharacterEncodingFilter.java保存,然后编译一下,推荐使用eclipse package myAddrBook; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.UnavailableException; /** * @author Administrator * * TODO 要更改此生成的类型注释的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */ public class SetCharacterEncodingFilter implements Filter { protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void destroy() { this.encoding = null; this.filterConfig = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Conditionally select and set the character encoding to be used if (ignore || (request.getCharacterEncoding() == null)) { String encoding = selectEncoding(request); if (encoding != null) request.setCharacterEncoding(encoding); } // Pass control on to the next filter chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase("true")) this.ignore = true; else if (value.equalsIgnoreCase("yes")) this.ignore = true; else this.ignore = false; } protected String selectEncoding(ServletRequest request) { return (this.encoding); } } //==================这段代码是我在网上摘录的,因为不知到出处所以无法标明作者 //然后将下面<filter>开始的代码加入到web.xml中,它位于WEB-INF下。 //我的QQ:22070699 //配置web.xml <!-- Set Character Encoding--> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>myAddrBook.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Set Character Encoding--> 返回类别: 教程 上一教程: 在JAVA应用程序中显示数据库的BLOB图像 下一教程: JSP中图片验证的实现 您可以阅读与"彻底解决TOMCAT 5.0.19中文乱码(过滤器)"相关的教程: · TOMCAT下中文的彻底解决 · JSP中文乱码问题的解决. · JSP动态输出EXCEL及中文乱码的解决 · JSP中文乱码问题解决方式小结 · JBOSS中,中文问题的彻底解决 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |