`
azrael6619
  • 浏览: 578238 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

乱码问题(filter类写法)

阅读更多

 

1.如果form用get传值,tomcat 中修改server.xml

因为tomcat默认编码是iso-8859-1,这里把他改成中文编码.

<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />

 

2.修改JAVA编码环境的字符集

JAVA程序中添加如下一段代码来修改JAVA变成环境所采用的字符集:

response.setContentType(“text/html;charset=GBK”);

它的作用是让浏览器把Unicode字符转换为GBK字符,这样页面的内容和浏览器的显示模式都设成了GBK,就不会乱码了。

 

3MySQL数据库所采用的字符集

MySQL数据库环境默认字符集是latin1,但是可以在安装时修改他的默认编码,如果使用工具创建数据库或者表,一般会有字符集选择项,设置成和前后环节统一的字符标准。

 

4JSP页面编辑时

JSP文件的头部加上<%@ page=contentType=”text/html;charset=GBK” %>

连接数据库时:

con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/sample_db?user=&password=&userUnicode=true&characterEncoding=GBK”);

 

5.getParameter()乱码也可以这样解决:

  String id=new String(request.getParameter("id").getBytes("ISO8859-1"),"UTF-8");

   String name = new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");

 

6.如果form用post传值,添加Fileter类(过滤类):

package com.yj.filter;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

//用户登陆筛选器   
public class SetCharacterEncodingFilter implements Filter {
 protected FilterConfig filterConfig = null;
 protected String encoding = null;

 public void destroy() {
  

 }

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

  response.setContentType("text/html;charset=gb2312");
  PrintWriter out = response.getWriter();
  if ((request.getCharacterEncoding() == null)) {
   String encoding = selectEncoding(request);
   if (encoding != null)
    request.setCharacterEncoding(encoding);
  }
  chain.doFilter(request, response);

 }

 public void init(FilterConfig filterConfig) throws ServletException {
  this.filterConfig = filterConfig;
  this.encoding = filterConfig.getInitParameter("encoding");
 }

 protected String selectEncoding(ServletRequest request) {

  return (this.encoding);

 }
}

 

然后在web.xml文件进行相应的配置:

  <filter>
 <filter-name>Set Character Encoding</filter-name>
 <filter-class>com.yj.filter.SetCharacteEncodingFilter</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>

代码说明:<filter-class>元素项就是设定SetCharacterEncodingFilter.java类所存放的具体位置。

 

7.如果是ajax通过get方式提交,或者是IE乱码,FireFox正常,那可以这么做

AJAX.get("comment",url + "&username=" + encodeURIComponent(username4) + "&content=" + encodeURIComponent(content4) + yzimgstr ,0);

意思就是把要传的参数用javascript自带的encodeURIComponent方法将参数进行编码

在插入数据库时再一次解码编码

content=urldecode(content);//解码
content=iconv("UTF-8","GB2312",content); //编码转换,注意:解码必须在编码转换前面,不然得不到正确值

分享到:
评论

相关推荐

    关于处理中文乱码问题 Filter 代码

    本文将重点解析“关于处理中文乱码问题 Filter 代码”的相关知识点,并结合Java Servlet API进行详细讲解。 首先,我们要理解什么是Filter(过滤器)。在Java Web开发中,Filter是Servlet API的一部分,它允许我们...

    解决中文乱码的Filter类ChineseFilter.java

    解决中文乱码的Filter类,解决中文乱码的Filter类,解决中文乱码的Filter类

    Filter中文乱码问题.doc

    在这个文档中,我们将深入探讨如何使用Filter解决中文乱码问题。 首先,我们需要创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其中的`init`和`doFilter`方法。`init`方法在Filter初始化时...

    filter配置解决乱码问题

    web.xml配置filter和filtermapping,编写类 读取或写死filter的init-params中的字符编码传入 reqeust中 调用dofilter方法,乱码解决

    如何配置Filter过滤器处理JSP中文乱码

    【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...

    Filter解决中文乱码

    Filter(过滤器)是Servlet规范的一部分,用于在请求处理前后执行一些预处理或后处理任务,解决乱码问题就是其中之一。本篇文章将详细讲解如何使用Filter来解决中文乱码问题,并提供相关源码和配置示例。 首先,...

    乱码问题的解决

    "乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...

    中文乱码问题分析 自己总结的

    解决这类乱码问题的基本方法是在页面获取参数之前,强制指定 request 获取参数的编码方式:`request.setCharacterEncoding("GBK")` 或 `request.setCharacterEncoding("gb2312")`。 在 Java 与数据库之间的乱码问题...

    乱码处理操作类

    6. **XML配置**:在`web.xml`中配置过滤器(Filter)可以全局处理乱码问题。例如,可以创建一个`CharacterEncodingFilter`,设置过滤器的`doFilter`方法来改变请求和响应的编码。 7. **IDE设置**:开发工具的编码...

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...

    java乱码问题解决方法

    Tomcat 5.5 中文乱码问题可以通过修改配置文件和使用 Filter 来解决。例如,可以在 web.xml 文件中添加以下代码: ```xml &lt;filter&gt; &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt; &lt;filter-class&gt;filters....

    hadoop中文乱码问题

    【Hadoop中文乱码问题详解】 在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储(HDFS)和分布式计算(MapReduce)的能力。然而,在处理包含中文字符的数据时,用户可能会遇到中文乱码的问题...

    解决web项目中出现的乱码问题,很方便

    在开发Web项目时,乱码问题常常困扰着开发者,它涉及到字符编码的处理,这是Web应用中的一个常见但至关重要的问题。本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以...

    struts2中文乱码问题

    需要注意的是,由于2.1.7版本及以后采用了新的过滤器实现,因此如果遇到乱码问题,首先要确认是否正确配置了过滤器类。 #### 方法四:使用POST请求方式 在表单提交时,建议使用POST方式代替GET方式,因为POST方式...

    qt乱码问题解决

    qt乱码问题解决

    struts 中文乱码问题解决

    在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...

    JAVA 乱码问题集合

    在Java编程中,乱码问题是一个常见的困扰,尤其是在处理字符编码时。以下是一些关键的知识点,可以帮助理解和解决Java中的乱码问题。 首先,我们需要理解字符编码的基本概念。字符编码是用来表示文本的一种方式,...

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    解决乱码问题工具类的使用.docx

    这个类实现了Servlet的`Filter`接口,主要目的是在请求进入和离开Servlet容器时进行字符编码的转换和设置。类中的`encode`变量用于存储字符编码的类型,默认值为"UTF-8"。在`init`方法中,它会检查过滤器配置中的`...

    FORM表单中文乱码问题分析与解决

    FORM表单中文乱码问题分析与解决 在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致...

Global site tag (gtag.js) - Google Analytics