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

解决jsp传的文字乱码的两种方法

阅读更多

一种方法是把tomcat的server.xml文件

所有的<Connector>标签的URIEncoding属性进行设置,

 

如: <Connector port="8000" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />

 

另一种方法是写过滤器

public class SetCharacterEncodingFilter implements Filter {

        private static final String DEFAULT_ENCODING = "UTF-8";

        protected String encoding;

        protected FilterConfig filterConfig;

        protected boolean ignore;

 

        public SetCharacterEncodingFilter() {

             encoding = null;

             filterConfig = null;

             ignore = true;

        }

 

        public void destroy() {

        }

 

        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws             IOException,ServletException {

        try {

              if (ignore || request.getCharacterEncoding() == null)

                     if (encoding != null) {

                            request.setCharacterEncoding(encoding);

                            response.setContentType("text/html; charset=" + encoding);

                     } else {

                            request.setCharacterEncoding(DEFAULT_ENCODING);

                            response.setContentType("text/html; charset=" + DEFAULT_ENCODING);

                     }

            } catch (Exception e) {

                     e.printStackTrace();

            }

            chain.doFilter(request, response);

      }

 

       public FilterConfig getFilterConfig() {

              return filterConfig;

        }

 

       public void init(FilterConfig filterConfig) throws ServletException {

             this.filterConfig = filterConfig;

             encoding = filterConfig.getInitParameter("CharacterEncoding");

             String value = filterConfig.getInitParameter("ignore");

             if (value == null)

                  ignore = true;

             else if (value.equalsIgnoreCase("true"))

                  ignore = true;

             else if (value.equalsIgnoreCase("yes"))

                  ignore = true;

             else

                  ignore = false;

        }

 

         public void setFilterConfig(FilterConfig filterConfig) {

              this.filterConfig = filterConfig;

         }

}

web.xml配置如下:

<filter>

     <filter-name>SetCharacterEncoding</filter-name>

     <filter-class> com.xx.xx.xx.SetCharacterEncodingFilter</filter-class>

     <init-param>

          <param-name>CharacterEncoding</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>SetCharacterEncoding</filter-name>

       <url-pattern>*.action</url-pattern>

</filter-mapping>

<filter-mapping>

        <filter-name>SetCharacterEncoding</filter-name>

         <url-pattern>*.jsp</url-pattern>

</filter-mapping>

最后附上:

        System.out.println(URLDecoder.decode(queryString, "ISO-8859-1")+"URLDecoder.decode()转成ISO-8859-1");

        System.out.println(URLDecoder.decode(queryString, "GBK")+"URLDecoder.decode()转成GBK");

        System.out.println(URLDecoder.decode(queryString, "UTF-8")+"URLDecoder.decode()转成UTF-8");

        System.out.println(new String(queryString.getBytes("ISO-8859-1"),"gbk")+"ISO-8859-1转成gbk");

        System.out.println(new String(queryString.getBytes("ISO-8859-1"),"UTF-8")+"ISO-8859-1转成UTF-8");

        System.out.println(new  String(queryString.getBytes(),"utf-8")+"getBytes()直接转成UTF-8");

  • 大小: 43.2 KB
  • 大小: 22.5 KB
分享到:
评论

相关推荐

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

    ### JSP中汉字乱码现象分析与解决 #### 摘要 在JSP开发过程中,汉字乱码问题是一个常见的技术挑战,它不仅影响用户体验,还可能阻碍项目的顺利进行。本文详细探讨了JSP中汉字乱码现象的原因,并提供了一系列有效的...

    2种解决JSP中request乱码问题.docx

    使用这两种方法可以解决 JSP 中 request 乱码问题,确保用户输入的中文和汉字等双字节文字正确显示。 此外,在保存 java 和 jsp 文件时,也应该使用 UTF-8 编码,以避免乱码问题。 在整个应用程序中使用 UTF-8 ...

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

    解决方法有两种: A. 使用上例中的第一种方式,对接受到的字符进行解码,再转码。 B. 在server.xml的Connector节点增加useBodyEncodingForURI="true"属性配置,以控制tomcat对get方式的汉字编码方式。 jsp中文...

    JSP中文乱码问题分析及处理方法

    针对JSP中文乱码问题,有几种有效的解决策略: **1. 在JSP文件中进行编码设置** 最直接的方法是在JSP文件头部声明正确的字符编码。例如,通过在JSP页面顶部添加`;charset=gb2312" %&gt;`语句,可以确保页面以GB2312...

    jsp解决乱码问题

    ### jsp解决乱码问题 #### 一、背景与概念 在不同的国家和地区,人们制定了各种各样的ANSI编码标准,这些标准仅规定了适用于各自语言的“字符”及其存储方式。例如,GB2312是针对中文的编码标准,并未定义如何存储...

    java中文乱码问题解决

    每种编码格式都有其特点和应用场景,了解这些编码格式可以帮助开发人员更好地解决乱码问题。 在Java中,编码问题可以从多方面入手。例如,在读取文件时,需要指定正确的编码格式,以避免乱码问题。在开发Java Web...

    Java Web开发中文乱码问题的研究与解决.pdf

    2. GB2312/GBK:这两种编码是中国国家标准,专门用于表示汉字。GB2312是简体中文的标准,GBK则扩展了GB2312,增加了对繁体字的支持。 3. Unicode:Unicode是一种统一的字符编码标准,每个字符由2字节表示,Java语言...

    ajax乱码解决方案

    解决Ajax乱码问题的方法: - **方法一**:在服务器端对请求参数进行重新编码,例如在Java Servlet中,可以先将请求参数从ISO8859-1解码,再用目标编码(如GBK)重新编码。 ```java String string = request....

    解决tomcat中文乱码问题.doc

    本文将详细探讨几种常见的乱码场景及其解决方案。 #### 一、JSP页面上的中文显示为乱码 **问题描述**:在JSP页面中直接输入中文时,页面上显示的是乱码。 **原因分析**:JSP页面被编译成Java文件的过程中,默认...

    Java WEB开发中的中文乱码问题解决方法.pdf

    解决中文乱码的方法通常有以下几种: 1. 设置项目的字符编码:在Web项目的配置文件中,如web.xml中设置字符编码为UTF-8,确保整个项目的字符编码统一。 2. 设置请求和响应编码:在Servlet的doGet和doPost方法中,...

    将html页改成jsp的两种方式

    这里介绍两种转换方法。 **方法一:直接修改HTML文件** 1. 在HTML文件顶部添加JSP指令标签: ```jsp ; charset=GB18030" pageEncoding="GB18030"%&gt; ``` 这行代码告诉服务器这是一个JSP页面,语言为Java,并...

    Java的中文乱码及部分解决方法

    ### Java的中文乱码及部分解决方法 #### 引言 在Java开发过程中,中文乱码问题一直是开发者面临的一个挑战。这是因为Java内部采用Unicode编码,而操作系统、浏览器以及各种外部资源可能采用不同的编码格式(如GBK...

    AJAX乱码解决大全.doc

    在开发过程中,文件编码的选择至关重要,主要分为ANSI和UTF-8两种: - **ANSI**:默认编码,实际表现为GB2312或GBK,适用于单一语言环境,但容易在国际化应用中产生乱码。 - **UTF-8**:推荐用于国际化项目,需手动...

    中文乱码处理

    - GET方式:GET请求参数的中文乱码可通过两种方式解决: - 修改Tomcat的server.xml配置文件,加入`URIEncoding="UTF-8"`来指定URL编码。 - 在代码中对GET请求参数进行编码转换处理,如使用`new String(request....

    javajsp中 中文问题详解

    本文将深入探讨这些概念,并提供具体的代码示例来解释如何在实际开发中解决中文显示或乱码的问题。 ### 1. Unicode与Java中的字符编码 #### 1.1 Unicode编码基础 Unicode是一种国际字符编码标准,旨在支持所有...

    java前后台(含数据库)乱码大综合

    首先,Struts2文件下载时的中文文件名乱码问题,可以通过以下两个步骤解决。在设置fileName属性时,先将其从ISO8859-1编码转换为UTF-8编码: ```java public void setFileName(String fileName) throws ...

    解决JSP开发中Web程序显示中文三种方法

    本文将介绍两种有效的方法来解决这个问题。 方法一:设置JSP页面编码 这是最简单且常用的方法,主要是通过在JSP页面的顶部添加指令来设定页面的编码格式。有两种写法: 1. `...

    JSP程序设计从入门到精通

    - **汉字编码问题**:解决JSP和Servlet中的汉字乱码问题,确保中文字符的正确显示。 - **开发工具集成**:使用Eclipse等IDE与Tomcat集成开发Servlet,提高开发效率。 #### 八、数据库操作 - **JDBC概述**:Java ...

    jsp开发讲义

    当`Request`对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。一种常见做法是先将获取的字符串用ISO-8859-1进行编码,再将其转换为字符串对象。例如: ```java String textContent = request....

Global site tag (gtag.js) - Google Analytics