`

乱码问题总结

    博客分类:
  • JSP
 
阅读更多

一、页面乱码问题

<%@ page language="java" contentType="text/html; charset=iso8859-1"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>乱码问题</title>
</head>
<body>
<h3>这里是首页。。。</h3>
</body>
</html>

 

注:

1)page language="java"   pageEncoding="UTF-8"  :这里的"UTF-8"指的是jsp文件的存储格式。Eclipse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。

2)contentType="text/html; charset=iso8859-1" :这里的“iso8859-1指的是解码格式。默认的是“iso8859-1”,当存储格式为“UTF-8”的文件用“iso8859”进行解码时,自然会出现乱码。

3)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> :这里的“UTF-8指的是浏览器的解码格式。当前两种格式一致时,这里的格式便显得无关紧要了。存在的问题是,当一个页面嵌入另一个页面时,浏览器不能确认使用哪种解码格式,会出现乱码。

解决方式:将所有的编码,全部设置为“UTF-8”格式,彻底解决此种情况的乱码问题。

 

 

二、Post 方式提交表单出现的乱码问题。

 

1、问题背景:Tomcat 内部默认的编码格式为“iso8859-1”,以post方式提交表单时,如果没有设置提交的编码格式,则会以“iso8859-1”格式进行提交,接收参数时,却以“UTF-8”格式接收,就会出现乱码问题。

2、解决方式。

1)接收参数时,进行编码转换。如:

       String userName= new String(request.getParameter("userName").getBytes("ISO-8859-1"),"utf-8")

2)在接收参数开始处,设置请求的编码。

       request.setCharacterEncoding("UTF-8")

3)使用过滤器对所有的jsp进行处理。在web.xml 中加入过滤器:

 

 

<filter>
  <filter-name>Set Character Encoding</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
  </init-param>
 </filter>

            <filter-mapping>
            <filter-name>Set Character Encoding</filter-name>
            <url-pattern>/*</url-pattern>
 </filter-mapping>

 

 三、Get 方式提交表单出现的问题。

1、问题背景:Tomcat 内部默认的编码格式为“iso8859-1”,以get方式提交表单时,Tomcat 以“iso8859-1”对汉字进行编码,编码后追加到url。

 

 

接收参数时以“UTF-8”格式进行接收出现乱码。

2、解决方式:

1)接收参数时,进行编码转换。如:

       String userName= new String(request.getParameter("userName").getBytes("ISO-8859-1"),"utf-8")

先以“ISO-88591-1”格式进行解码,然后以“UTF-8”方式进行编码。

2)修改Tomcat服务器配置server.xml文件中对HTTP协议的 Connector配置。

< Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" 
disableUploadTimeout="true" URIEncoding="UTF-8" /> 

 

 

四、数据库访问时的乱码问题(本段 摘录
在使用JDBC连接MySQL数据库时,连接字符串写成如下形式可以避免一些中文问题:
  
jdbc://mysql://hostname:port/DBname?user=username&password=pwd&useUnicode=true&characterEncoding=utf-8
如果是以数据源的方式连接数据库,在配置文件中使用:

<parameter>
      <name>url</name>
      <value>jdbc:mysql://hostname:port/DBname?&useUnicode=true&characterEncoding=utf-8</value>
</parameter>

 如果使用一个已存在的数据库,数据库的编码方式为ISO-8859-1,而Web应用中是utf-8,且数据库中已有很多重要的信息,因此不能通过更改数据库编码方式来解决问题。这时,在往数据库中写数据时,一定要在JDBC连接字符串中加入"useUnicode=true&characterEncoding=ISO-8859-1",这样就可以顺利往数据库写入正常的数据。但是,在将数据读出数据库时,乱码又会出现,这时就应该在数据取出时对其转码,可以将转吗功能写为一个函数,具体实现如下:

public String charConvert(String src){
    Stringresult=null;
   if(src!=null){
       try{
           result = newString(src.getBytes("ISO-8859-1"),"utf-8");
         }catch(Exception e){
          result = null;
          }
    }
     returnresult;
}

 

于是,在从数据库读出数据过后调用charConvert(rs.getString("colName")),这样就可以正常显示数据库中的中文数据了。

 

 

 

 

 

分享到:
评论

相关推荐

    struts处理中文乱码问题总结

    struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结

    Java开发乱码问题解决方法汇总

    Java开发乱码问题解决方法汇总 ...Java开发乱码问题解决方法汇总中,我们总结了七种常见的解决方法。这些方法可以帮助读者避免乱码问题的发生。如果读者在实际开发中遇到乱码问题,可以尝试使用这些方法来解决问题。

    PHP WEB 开发乱码问题总结

    本文主要总结了五个方面可能导致的乱码问题及解决方案,帮助开发者们更好地理解和解决这些问题。 #### 一、HTML 页面转UTF-8 编码问题 1. **元数据标签**:确保在`&lt;head&gt;`标签内,在`&lt;title&gt;`标签之前添加`;...

    Android乱码问题总结

    总结来说,Android的乱码问题主要涉及URL、文件名和源代码等场景,关键在于正确处理字符编码的转换。了解各种编码方式,掌握如何在Java和Android中进行编码转换,以及熟悉相关工具的使用,都将有助于我们有效地解决...

    html页面乱码问题总结

    HTML页面乱码问题是一个常见的开发痛点,特别是在处理多种编码格式时。本文将深入探讨这个问题,以便更好地理解和解决这类问题。 首先,我们需要理解编码的基础知识。字符编码是用来将字符(如字母、数字、符号)...

    Windows10 + qt5.8.0解决编码乱码问题总结.pdf

    在Windows 10系统上使用Qt5.8.0进行编程时,常常会遇到中文乱码的问题,这些问题主要表现在代码中的中文注释和字符串显示乱码、编译输出信息乱码以及保存文件时中文路径乱码。这些问题产生的根本原因在于Windows系统...

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

    中文乱码问题分析 中文乱码问题是 Java 和 JSP 开发中的一种常见问题,主要是由于 Java 和 JSP 源文件的保存方式是基于字节流的,而编译成 class 文件过程中,使用的编码方式与源文件的编码不一致所致。在 Java ...

    Ajax uri 乱码问题总结

    总结来说,解决Ajax URI乱码问题的关键在于理解和匹配浏览器的编码行为,并在服务器端进行相应的配置。通过以上策略,可以有效地解决大部分浏览器的乱码问题,实现更好的跨浏览器兼容性。然而,对于特定情况,可能还...

    中文乱码处理问题总结

    ### 中文乱码处理问题总结 #### 一、引言 在进行中文字符处理时,经常会出现乱码问题。这主要是因为不同的系统、程序或组件可能采用不同的编码方式,而这些编码方式之间的转换不当就会导致乱码现象。本文将重点...

    js出现乱码问题介绍大全

    ### JS出现乱码问题介绍大全 #### 一、引言 在Web开发中,字符编码问题经常困扰开发者,特别是当涉及到不同语言环境时。JavaScript作为前端开发的核心技术之一,在处理字符编码方面同样会遇到各种各样的乱码问题。...

    Netty进制转换乱码问题

    总结,Netty中的进制转换乱码问题通常源于字符编码不一致或处理不当。解决此类问题的关键在于确保数据的发送和接收端都采用相同的字符编码,正确使用ByteBuf的方法进行读写,并可能需要自定义解码逻辑。通过仔细的...

    servlet中文乱码问题

    ### Servlet + Tomcat 中文乱码问题解析及解决方案 #### 一、中文乱码问题概述 在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致...

    JSP中文乱码问题解决总结

    在IT行业中,尤其是在Web开发领域,JSP(JavaServer Pages)是常见的动态网页技术,而中文乱码问题一直是开发者们经常遇到的困扰。...希望这个总结能帮助到大家,减少在查找和调试这类问题上花费的时间。

    log4j乱码问题解决办法

    ### log4j乱码问题解决办法 #### 一、引言 在开发过程中,日志记录是必不可少的一个环节。良好的日志系统可以帮助开发者快速定位问题并进行调试。Log4j作为一款广泛使用的Java日志框架,在很多项目中扮演着重要...

    Struts的乱码问题

    ### Struts框架中的乱码问题解析与解决方案 #### 背景介绍 在Web开发过程中,尤其是使用Java Web框架如Struts进行项目开发时,经常遇到的一个问题是中文字符的乱码问题。这个问题主要体现在中文字符在Web页面上的...

    struts 中文乱码问题解决

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

Global site tag (gtag.js) - Google Analytics