`

JSP乱码问题总结--一上午的劳动成果

    博客分类:
  • java
阅读更多

大家都知道,计算机只认识二进制的数字, 那么所谓各种字符的编码,其实就是对二进制数据的某种约定。如,ASCLISO88591GBKUnicodeUTF8。而乱码的产生就是在不同字符集转换的过程中出现的。比如在java中,内部使用的是Unicode编码,当JVM读取到中文时,它把GBK转化成Unicode进行处理,处理完输出时,再转化成GBK,读与写这两个过程是可逆的,按理不会产生乱码。但实际应用的情况就比较复杂,在WEB应用中,包括了浏览器,服务器,应用程序,数据库等等,它们之间的编码可能各不相同,没有一个合理的转换机制,乱码就产生了。下面就几种常见乱码问题做一下总结:

一、表单提交乱码:表单提交的默认字符串是以ISO-8859-1转化来的,ISO-8859-1不支持中文,由于找不到相应的编码,就会产生乱码。解决的办法可以在提交参数前调用request.setCharacterEncoding("UTF-8”)

二、输出中文时出现乱码:解决此问题可以在输入内容前加调用response.settCharacterEncoding("UTF-8”)。因引解决上述两各乱码问题,最好是写个过器,过滤器代码如下:

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;

import javax.servlet.http.HttpServlet;

 

public class CodeFilter extends HttpServlet implements Filter {

    private FilterConfig filterConfig;

    //Handle the passed-in FilterConfig

    public void init(FilterConfig filterConfig) throws ServletException {

        this.filterConfig = filterConfig;

    }

 

    //Process the request/response pair

    public void doFilter(ServletRequest request, ServletResponse response,

                         FilterChain filterChain) {

        try {

          request.setCharacterEncoding("utf-8");

          response.setCharacterEncoding("utf-8");

          filterChain.doFilter(request, response);

        } catch (ServletException sx) {

            filterConfig.getServletContext().log(sx.getMessage());

        } catch (IOException iox) {

            filterConfig.getServletContext().log(iox.getMessage());

        }

    }

 

    //Clean up resources

    public void destroy() {

}

}

在Web.xml的<web-app></web-app>中加入如下代码:

<filter>

     <filter-name>codeFilter</filter-name>

     <filter-class>filter.CodeFilter</filter-class>

    </filter>

    <filter-mapping>

     <filter-name>codeFilter</filter-name>

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

    </filter-mapping>

三、地址栏中传中文乱码的问题:例如a.jsp?name=”张三。解决此问题需要做两点:

      a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(name);在取值时用java.net.URLDncoder.dncode(name);再转回中文。

      b.在Tomcat目录àconf目录àserver.xml里找到:(我的是Tomcat6.0

<Connector port="8080" protocol="HTTP/1.1"

               maxThreads="150" connectionTimeout="20000"

               redirectPort="8443"  <!—在里边加上这个参数---> URIEncoding=”utf-8”/>

四、如果前几各方法没有效果,不防试试这个:String name=new String(request.getParameter(“name”).getBytes(“ISO-8859-1”),”UTF-8”);

五、往磁盘上写文件时, 由于写入时默认是本机编码,虽然所取到的值是UTF-8编码,但写入时依然按本机编码。解决方法:

FileOutputStream fileoutputstream = new FileOutputStream(“文件名”);

DataOutputStream dos = new DataOutputStream(fileoutputstream);

dos.writeUTF(“内容”);

os.close();

六、往数据库写入时出现乱码,解决办法:首先确定你在插入数据库之前是中文 ,然后在数据库连接字串(URL)后加上useUnicode=true&characterEncoding=utf-8

以上属于个人总结,希望各位多提宝贵意见!

 

分享到:
评论

相关推荐

    解决JSP中文乱码问题

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

    [jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题

    标题中的“jspSmartUpload上传中文文件名乱码问题”是一个常见的技术挑战,特别是在处理Web应用程序时,特别是那些涉及用户上传文件的场景。JSP Smart Upload是早期流行的一个用于Java Web应用的文件上传组件,它...

    JSP中文乱码问题解决总结

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

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

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

    JSP-GET-POST传递的乱码问题

    综上所述,解决JSP-GET-POST传递的乱码问题,需要从请求的接收、响应的发送、文件上传、数据库存储等多个环节进行字符编码的统一和正确设置。在实际开发中,了解和掌握这些知识点,可以有效地避免乱码问题,提高Web...

    jsp----->中文乱码问题

    本文将深入探讨JSP中文乱码问题的成因、解决方案以及相关的编码知识。 首先,我们要理解什么是字符编码。字符编码是用来表示文字的一种方式,如ASCII、GB2312、GBK、UTF-8等。在JSP中,默认的编码可能并不总是与...

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

    jsp中文乱码问题详解 在jsp中文乱码问题中,乱码的出现是由于编码格式不一致所导致的。在jsp文件中,存在三个地方的编码格式:jsp文件的存储格式、解码格式和控制浏览器的解码方式。如果这三个地方的编码格式不一致...

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

    在Web开发中,特别是使用Java Server Pages (JSP)进行开发时,字符编码问题是一个经常遇到的技术难题。如果处理不当,很容易导致网页显示乱码,影响用户体验及数据的正确性。本文将详细介绍如何有效地解决JSP中的...

    Jsp乱码问题解决

    ### JSP乱码问题解决 ...总结起来,解决JSP中的中文乱码问题主要需要关注三个方面:页面编码设置、表单提交数据编码设置以及数据库连接和字段编码设置。通过合理配置这些参数,可以有效避免乱码问题的发生。

    JSP乱码解决方案

    在开发Java Web应用程序时,JSP(JavaServer Pages)页面的乱码问题是一个常见的困扰。JSP乱码通常发生在字符编码不一致或者处理不当的情况下,这会影响用户界面的显示,导致文字显示为不可读的方块或者特殊字符。...

    JSP中文乱码问题解决办法

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

    jsp编码 jsp乱码

    jsp编码乱码问题是jsp开发中常见的问题之一,该问题可能会导致jsp页面显示乱码,影响用户体验。因此,了解jsp编码的原理和解决乱码问题的方法是非常重要的。 jsp编码的原理 jsp编码是指jsp页面中的编码方式,jsp...

    jsp eclipse乱码问题

    ### JSP Eclipse 乱码问题解析与解决方案 在开发基于Java的Web应用时,经常会遇到JSP页面在Eclipse环境中出现乱码的情况。这不仅会影响程序的正常运行,还可能导致用户体验下降。本文将针对JSP在Eclipse中的乱码...

    彻底解决 Tomcat 5 下文字乱码问题 - JSP日志 - ※一路风尘※

    在IT行业中,尤其是在Web开发领域,Tomcat是一个广泛使用的开源应用服务器,主要处理Java Servlet和JSP(JavaServer Pages)应用程序。然而,在实际操作中,开发者时常会遇到字符编码问题,尤其是在Tomcat 5这样的较...

    JSP乱码 N种解决方案

    在开发Java Web应用程序时,JSP(JavaServer Pages)页面经常遇到字符编码问题,导致页面显示乱码。本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码...

    如何解决MySql-JSP中文乱码问题

    在开发Web应用时,尤其是使用Java技术栈如JSP、Servlet与MySQL数据库交互时,中文乱码问题常常困扰着开发者。这个问题的出现主要是由于字符编码不一致导致的,包括数据库编码、连接编码、页面编码等多个环节。下面...

    JSP乱码问题

    JSP乱码问题解决方案 JSP乱码问题是指在JSP页面中遇到的字符编码问题,导致页面显示乱码的现象。下面是解决JSP乱码问题的一些常见方法: 首先,在JSP页面中,我们可以使用String的getBytes()方法将字符串转换为...

    java项目jsp中乱码问题解决

    在Java项目开发中,尤其是使用JSP技术时,经常遇到的中文乱码问题是一个常见的困扰。这涉及到编码和解码的过程,以及不同平台和环境之间的兼容性问题。Java的默认编码是Unicode,而中文文件和数据库通常使用GB2312或...

    JSP中文乱码处理JSP中文乱码处理

    在Web开发中,JSP中文乱码是一个常见的问题,主要涉及页面显示、表单提交以及数据库操作等环节。理解并掌握这些环节的编码处理至关重要,以确保数据的准确性和用户体验。 1. **JSP文件的编码与保存** JSP文件本质...

Global site tag (gtag.js) - Google Analytics