`

JSP中的乱码解决方案

阅读更多

      首先,确保你的数据库是支持中文的。把数据库的编码方式设置能支持中文的,如GB2132,utf-8等,而且经过测试后确实能写入中文且正常显示。这样就就保证了数据库确实是支持中文的,且可以正常输入和保存中文。如果数据库本身都不支持中文字符,那不管你怎么写代码都是无济于事的,肯定会出现中文乱码。

其次,从输入源杜绝中文乱码出现的可能。只有从数据输入源杜绝了中文乱码出现的可能,才能保证输入到数据库中的是正确的字符,加上我们第一步的保障,那么就保证了从数据库中读取的数据的正确性,从而也就保证了程序从数据库中读取的数据不会出现中文乱码成为可能。解决方法:

解决方法一:从页面输入杜绝乱码出现的可能
1、在jsp输入页面中加入:
<%@pagecontentType="text/html;charset=数据库字符集"% >
2、在html标签的<head>的第一行加入
<meta http-equiv="Content-Type" content="text/html; charset=数据库字符集" />

解决方法二:使用javax.servlet.Filter
1、编写web.xml配置。在
这样就可以保证页面发送的数据的编码与数据库编码一致,这样从数据库中读取的数据就是你想要的正确字符了,你可放心的读取了

    <filter>
        
<filter-name>encoding</filter-name>
        
<filter-class>com.morecans.test.EncodingFilter</filter-class>
        
<init-param>
            
<param-name>charset</param-name>
            
<param-value>utf-8</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>encoding</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>


2、编写Filterservlet:com.morecans.test.EncodingFilter

package com.morecans.test;

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;

public class EncodingFilter implements Filter ...{
    
private FilterConfig config;

    
public void destroy() ...{
        System.out.println(
"*** destroy   EncodingFilter");

    }


    
public void doFilter(ServletRequest servletrequest,
            ServletResponse servletresponse, FilterChain filterchain)
            
throws IOException, ServletException ...{
        System.out.println(
"*** doFilter  EncodingFilter");
        String charset 
= this.config.getInitParameter("charset");
        servletrequest.setCharacterEncoding(charset);   //设
        servletresponse.setCharacterEncoding(charset);
        filterchain.doFilter(servletrequest, servletresponse);
    }


    
public void init(FilterConfig filterconfig) throws ServletException ...{
        
this.config = filterconfig;
        System.out.println(
"*** init  EncodingFilter");

    }


}

 

最后,在输出处避免乱码的出现。只有把输出控制好了,那么我们前面的工作就没有白费,前面的辛苦才会得到承认,才能得到收获。这一步,很简单,甚至都可以不要,因为我们前面的两步基本把这一步的工作也做了,我是说如果编码规范的话。然而,千里之堤,溃于蚁穴!行百里者半九十!希望前面的准备工作不会是徒劳,这是我们不原意看到的,所以在治理我还是建议不要因为这么一小步而错过了收获的季节。解决方法:

现在,你只需要在读取数据之前加上
request.setCharacterEncoding(数据库字符集);      
response.setCharacterEncoding(数据库字符集);  

而在jsp数据显示页面也像输出页面那样加上
<%@pagecontentType="text/html;charset=数据库字符集"% >                                
<meta http-equiv="Content-Type" content="text/html; charset=数据库字符集" />

整个过程,从源头到源尾,彻底的监视着数据的一举一动,时刻修正着数据的模样和流向,从而彻底消灭中文乱码这个恶魔的出现。

分享到:
评论

相关推荐

    jsp中文乱码的解决方案

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

    Eclipse 开发JSP中文乱码解决方案

    以下是解决Eclipse开发JSP中文乱码问题的详细步骤和知识点: 1. **Project -&gt; Properties -&gt; Resources** 在这里,你可以设置当前项目的文本文件编码。点击“Text file encoding”选项,然后选择“Other”,在下拉...

    JAVA/JSP中文乱码解决方案总结

    解决乱码的各种方法总结,包括数据库的解决方案,个人觉得比较详细有使用价值

    Jsp中文乱码解决方案.rar

    本文将深入探讨JSP中文乱码问题的原因,并提供一系列解决方案。 一、原因分析 1. 字符集不匹配:在JSP文件、HTML文件、服务器、数据库等多个环节中,如果字符集设置不一致,就可能导致中文字符在传输过程中无法...

    jsq+mybatis+mysql中文乱码解决方案

    JSP 中文乱码解决方案 在 JSP 中,中文乱码的原因主要是浏览器和服务器的编码格式不一致。解决方法是: 1. 在 JSP 页面头部添加 `; charset=UTF-8"&gt;`,这样浏览器将使用 UTF-8 编码格式来编码表单中的数据。 2. 在...

    JSP乱码解决方案

    本文将深入探讨JSP乱码的原因及其解决方案,帮助开发者有效地处理这类问题。 ### 1. JSP乱码的成因 - **字符集设置不一致**:JSP文件、HTML页面、HTTP头、Servlet输出以及数据库存储等环节的字符集设置不一致,...

    JSP乱码 N种解决方案

    本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...

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

    解决 JSP 中文乱码的方案 JSP 中文乱码是动态网站开发中经常遇到的问题,本文将从产生 JSP 中文乱码的四种类型入手,分析乱码产生的原因,并给出消除乱码的具体方法。 一、页面中文乱码的处理 JSP 采用 ISO-8859-...

    jsp乱码解决方案 本方案解决了jsp常见的乱码问题

    ### jsp乱码解决方案 #### 一、引言 在Web开发中,特别是使用Java Server Pages (JSP)进行开发时,字符编码问题是一个经常遇到的技术难题。如果处理不当,很容易导致网页显示乱码,影响用户体验及数据的正确性。...

    jsp+mysql中文乱码解决方案集合

    ### jsp+mysql中文乱码解决方案集合 在使用JSP结合MySQL进行Web应用开发时,中文乱码问题一直是困扰开发者的一大难题。本文将详细介绍如何在MySQL数据库层面解决中文乱码问题,并提供一系列实用的方法和技巧。 ###...

    jsp常用经典代码(md5java实现,生成中文/数字验证码,解决中文乱码)

    在`Jsp中文乱码解决方案.rar`和`解决JSP中文显示问题的几个方法.rar`中,可能提供了几种解决策略,如设置HTTP头信息中的字符编码,确保JSP文件本身的编码正确,以及在JSP页面中使用`&lt;meta&gt;`标签声明页面编码。...

    JSP中乱码解决办法

    ### POST方式下的乱码解决方案 #### 1. 使用`request.setCharacterEncoding()`方法 在JSP页面中,可以通过设置`request`对象的字符编码来解决POST请求中的乱码问题。具体做法是在获取参数前调用`request.set...

    jspsmartupload-解决中文乱码

    后来查了网上一些人的解决方案,最彻底的解决办法就是修改jspsmartupload的源码,在upload、download方法处强制指定它的编码格式就可以了。这是修改后的jar包,可以直接拿来用,但在初始化SmartUpload类的时候需要...

    jsp中文乱码问题解决

    首先,我们需要了解jsp中文乱码问题产生的原因,然后再讨论解决方案。 jsp中文乱码问题产生的原因是由于jsp页面的编码方式和浏览器的编码方式不一致所致。jsp页面的编码方式默认为ISO-8859-1,而浏览器的编码方式...

    JSP页面传参出现中文乱码的解决方案

    在本文中,我们将深入探讨JSP页面传参出现中文乱码的原因,并提供有效的解决方案。 1. 乱码原因: - **编码与解码不匹配**:当JSP页面、Servlet或服务器配置的字符编码不一致时,中文字符在传输过程中可能被错误地...

    Jsp乱码解决方案 word文档

    本文将深入探讨JSP中出现乱码的原因,并提供一系列解决方案,帮助你解决这一常见问题。 **乱码产生的原因** 1. **字符编码不一致**:JSP文件本身、HTTP请求头、响应头以及数据库存储的字符编码可能存在不一致,...

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

    本文将详细介绍几种有效的解决方案,帮助开发者应对各种场景下的乱码问题。 #### 一、解决服务器响应中文乱码 1. **设置Content-Type头** 在`HttpServletResponse`对象中通过`setContentType`或`setHeader`方法...

Global site tag (gtag.js) - Google Analytics