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,就不会乱码了。
3.MySQL数据库所采用的字符集
MySQL数据库环境默认字符集是latin1,但是可以在安装时修改他的默认编码,如果使用工具创建数据库或者表,一般会有字符集选择项,设置成和前后环节统一的字符标准。
4.JSP页面编辑时
在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 代码”的相关知识点,并结合Java Servlet API进行详细讲解。 首先,我们要理解什么是Filter(过滤器)。在Java Web开发中,Filter是Servlet API的一部分,它允许我们...
解决中文乱码的Filter类,解决中文乱码的Filter类,解决中文乱码的Filter类
在这个文档中,我们将深入探讨如何使用Filter解决中文乱码问题。 首先,我们需要创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其中的`init`和`doFilter`方法。`init`方法在Filter初始化时...
web.xml配置filter和filtermapping,编写类 读取或写死filter的init-params中的字符编码传入 reqeust中 调用dofilter方法,乱码解决
【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...
"乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...
Filter(过滤器)是Servlet规范的一部分,用于在请求处理前后执行一些预处理或后处理任务,解决乱码问题就是其中之一。本篇文章将详细讲解如何使用Filter来解决中文乱码问题,并提供相关源码和配置示例。 首先,...
解决这类乱码问题的基本方法是在页面获取参数之前,强制指定 request 获取参数的编码方式:`request.setCharacterEncoding("GBK")` 或 `request.setCharacterEncoding("gb2312")`。 在 Java 与数据库之间的乱码问题...
6. **XML配置**:在`web.xml`中配置过滤器(Filter)可以全局处理乱码问题。例如,可以创建一个`CharacterEncodingFilter`,设置过滤器的`doFilter`方法来改变请求和响应的编码。 7. **IDE设置**:开发工具的编码...
解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...
Tomcat 5.5 中文乱码问题可以通过修改配置文件和使用 Filter 来解决。例如,可以在 web.xml 文件中添加以下代码: ```xml <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters....
FORM表单中文乱码问题分析与解决 在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致...
在开发Web项目时,乱码问题常常困扰着开发者,它涉及到字符编码的处理,这是Web应用中的一个常见但至关重要的问题。本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以...
需要注意的是,由于2.1.7版本及以后采用了新的过滤器实现,因此如果遇到乱码问题,首先要确认是否正确配置了过滤器类。 #### 方法四:使用POST请求方式 在表单提交时,建议使用POST方式代替GET方式,因为POST方式...
qt乱码问题解决
【Hadoop中文乱码问题详解】 在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储(HDFS)和分布式计算(MapReduce)的能力。然而,在处理包含中文字符的数据时,用户可能会遇到中文乱码的问题...
在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...
在Java编程中,乱码问题是一个常见的困扰,尤其是在处理字符编码时。以下是一些关键的知识点,可以帮助理解和解决Java中的乱码问题。 首先,我们需要理解字符编码的基本概念。字符编码是用来表示文本的一种方式,...
解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...
这个类实现了Servlet的`Filter`接口,主要目的是在请求进入和离开Servlet容器时进行字符编码的转换和设置。类中的`encode`变量用于存储字符编码的类型,默认值为"UTF-8"。在`init`方法中,它会检查过滤器配置中的`...