`
jsnjlc
  • 浏览: 50942 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSP项目中的乱码全套解决方式

    博客分类:
  • Java
阅读更多

        JSP的中文乱码问题一直是我的问题,曾经有段时间解决过,但是输入中文的生僻字的时候显示依然不正常。前几天又把生僻字的问题解决了,我想中文乱码的问题应该暂时告一段落了。中文乱码问题的核心是因为编码的问题,Tomcat中的编码是ISO-8859-1,而我们中文的编码一般是GBK跟GB2312,Linux的编码是UTF-8,XML的编码是UTF-8,网络中传输的编码是UTF-8,那我们的项目编码应该是什么?毫无疑问UTF-8才是正确的选择。
        UTF-8的编码方式要从开始建项目的时候就确立,因此建立的项目编码格式首先就是UTF-8的。然后页面的编码方式自然也要是UTF-8的,但是页面中要加入以下的2行代码:
        <%@ page contentType="text/html; charset=UTF-8" %>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
在上面打中文等是不受影响的。最后就是要加个过滤器了,过滤所有的网页,所有的网页经过过滤器的时候自动转成了UTF-8的编码。下面是过滤器的代码: 

package  XX.XX;

import  java.io. * ;
import  java.util. * ;
import  javax.servlet. * ;
import  javax.servlet.http. * ;

public   class  filter
    
extends  HttpServlet  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  ... {

    
//  如果使用过滤器,忽略客户端的编码,那么使用通过过滤器设定编码
     if  (ignore  ||  (request.getCharacterEncoding()  ==   null ))  ... {
      String encoding 
=  selectEncoding(request);
      
if  (encoding  !=   null ) ... {
        request.setCharacterEncoding(encoding);
      }
else ... {
        request.setCharacterEncoding(
" UTF-8 " );
      }

    }


    
//  传送给下一个过滤器
    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);
  }

}

当然相应的,在web.xml中也要相应过滤器配置

   < filter >
    
< filter - name > filter </ filter - name >
    
< filter - class > net.dswhb.servlet.filter </ filter - class >
    
< init - param >
      
< param - name > encoding </ param - name >
      
< param - value > UTF - 8 </ param - value >
    
</ init - param >
    
< init - param >
      
< param - name > ignore </ param - name >
      
< param - value > true </ param - value >
    
</ init - param >
  
</ filter >
  
< filter - mapping >
    
< filter - name > filter </ filter - name >
    
// 这里写的是过滤哪些页面,所有页面就是/*
     < url - pattern > /**/ /* </url-pattern>
  </filter-mapping>
至此,我的乱码问题全部解决,那些比较少间的字如'姮'也能正常显示了
分享到:
评论

相关推荐

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示...解决 JSP 中文乱码问题需要从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交表单等。

    java项目jsp中乱码问题解决

    此外,如果直接在JSP中处理中文字符串,可以通过转换编码来避免乱码,例如将ISO8859-1编码的字符串转换为UTF-8编码。 其次,当从表单提交的数据中获取中文时,可能会遇到乱码问题。因为Tomcat默认以ISO8859-1处理...

    jsp SmartUpload 中文乱码问题解决.docx

    在这篇文章中,我们将介绍如何解决 jsp 中 SmartUpload 中文乱码问题。 一、上传 在使用 SmartUpload 组件进行文件上传时,如果用户选择的文件名或文件路径含有中文字符,可能会出现乱码问题。为了解决这个问题,...

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见...解决 JSP 中文乱码问题需要从多方面入手,包括在 JSP 文件中指定编码方式,在 Java 文件中指定编码方式,在页面中指定编码方式,并确保编码方式的一致性。

    jspsmartupload-解决中文乱码

    最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...

    jsp中文乱码的解决方案

    文档《JSP各种乱码的处理(一).doc》和《JSP各种乱码的处理(二).doc》中可能详细列举了各种JSP乱码问题的实例及解决方法,包括但不限于文件上传、读取流、数据库操作等方面,建议参考学习,以便更全面地理解并解决...

    web项目乱码问题 jsp乱码问题解决

    在Web开发中,尤其是涉及到Java和JSP的项目,中文乱码问题常常困扰着开发者。本文将深入探讨这个问题,提供解决方案。 首先,我们需要理解乱码的根源。乱码通常由于字符编码不一致导致,尤其是在JSP文件中,不同的...

    JSP页面中文乱码几个解决办法

    在开发基于Java的Web应用程序时,常常会遇到中文乱码的问题,尤其是在JSP和Servlet中。JSP页面中文乱码的出现通常是由于字符编码不一致导致的,这会影响到用户的正常浏览体验。以下是一些常见的解决办法: 1. **JSP...

    jsp url中文乱码四种解决方式

    get提交中文乱码 地址重写中文乱码 jsp url中文乱码四种解决方式

    jsp中文乱码问题解决

    jsp中文乱码问题是jsp开发中常见的问题之一,本文将围绕jsp中文乱码问题的解决展开讨论。首先,我们需要了解jsp中文乱码问题产生的原因,然后再讨论解决方案。 jsp中文乱码问题产生的原因是由于jsp页面的编码方式和...

    JSP中文乱码问题解决总结

    在IT行业中,尤其是在Web开发领域,JSP(JavaServer Pages)是常见的动态网页技术,而中文乱码问题一直是开发者们经常遇到的困扰。本篇文章将深入探讨JSP中文乱码问题的原因、解决策略以及预防措施。 一、乱码产生...

    JSP中解决中文乱码的万能方法

    ### JSP中解决中文乱码的万能方法 在JSP开发过程中,中文乱码问题是一个常见的技术难题,尤其在处理客户端与服务器之间的数据交互时更为突出。本文将详细介绍几种有效的解决方案,帮助开发者应对各种场景下的乱码...

    JSP乱码 N种解决方案

    - 如果JSP中引用了静态资源(如CSS、JavaScript),这些文件也需要使用正确的编码保存。 13. **图片和二进制文件** - 如果涉及到图片或二进制文件上传,乱码问题通常不涉及字符编码,但要确保文件名的编码与...

    几种常用解决jsp中文乱码的方案

    二、表单传递过程中乱码的处理 在表单传递过程中,Request.getParameter() 得到的参数,编码方式都是 ISO8859_1,直接按这种编码方法显示中文必然得到乱码。解决办法有两种: 方法一:在标记 &lt;html&gt; 之前,加上一...

    jspsmartupload中文乱码解决版

    此外,`action smart 例子.txt`可能是一个文本文件,其中包含了关于如何在`struts1.2`中集成`jspsmartupload`的示例代码或者步骤,可以帮助我们更好地理解如何在实际项目中应用这些解决方案。 通过以上步骤,我们...

    解决jsp页面乱码

    解决jsp页面乱码,页面信息配置,tomcat配置以及各种信息配置

    解决jsp页面中文乱码问题

    本文将深入探讨如何解决这个问题,确保在JSP页面中正确显示中文字符。 首先,我们需要理解字符编码的基本概念。在计算机系统中,字符编码是用来表示文本的规则,如常见的ASCII、GBK和UTF-8等。在Web环境中,HTTP...

    jsp中文乱码问题jsp中文乱码问题详解

    jsp中文乱码问题的出现是由于编码格式不一致所导致的,可以通过确保jsp文件的存储格式、解码格式和控制浏览器的解码方式一致来解决乱码问题。同时,在使用Post和Get方式提交表单时,需要指定提交的编码格式,以避免...

    JSP中汉字乱码现象分析与解决.pdf

    综上所述,解决JSP中的中文乱码问题主要涉及以下几个方面:合理设置JSP文件和响应的编码方式、注意文件头部的BOM、确保客户端和服务器端之间的编码方式一致、正确处理GET和POST请求中的中文参数。通过上述措施,可以...

Global site tag (gtag.js) - Google Analytics