`
richardeee
  • 浏览: 18365 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

又谈乱码问题解决

阅读更多

有人说,乱码问题一直跟中国的程序员特别有缘,真是再同意不过了,不管是Struts,JSF,JSP,还是MySQL,Tomcat,全都或多或少有乱码的问题。
一般的做法有用Filter:

< 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 > GBK </ param-value >
    
</ init-param >
    
< init-param >
      
< param-name > ignore </ param-name >
      
< param-value > true </ param-value >
    
</ init-param >
  
</ filter >
  
< filter-mapping >
    
< filter-name > Set Character Encoding </ filter-name >
    
< url-pattern > *.do </ url-pattern >
  
</ filter-mapping >
  
< filter-mapping >
    
< filter-name > Set Character Encoding </ filter-name >
    
< url-pattern > *.jsp </ url-pattern >
  
</ filter-mapping >
  
< filter-mapping >
    
< filter-name > Set Character Encoding </ filter-name >
    
< url-pattern > *.html </ url-pattern >
  
</ filter-mapping >
  
< filter-mapping >
    
< filter-name > Set Character Encoding </ filter-name >
    
< url-pattern > *.htm </ url-pattern >
  
</ filter-mapping >


的,有用

<% request.setCharacterEncoding( " GBK " ); %>

的,还有用

<% @ page contentType = " text/html; charset=GBK "  pageEncoding = " GBK " %>


的,还可以用

<%  String name  =   new  String(request.getParameter( " name " ).getBytes( " 8859_1 " ),  " GB2312 " );  %>


昨天就在做项目的过程中,发现用URL传request参数的时候,在第二个页面上得到乱码的问题。把上面几种方法都试了一下还是不行。仔细追踪了一下,发现在页面的源代码上中文是正常的,一直到URL还是中文正常,可是在后台的Action里面log出来就成了乱码了,于是猜想是在request封装的过程中把中文变成乱码了,以致于后台直接就是取到的乱码。在后台Action中Set入中文,页面上正常显示,说明Struts的中文已经不存在问题。剩下的,应该就只有doGet和doPost方法的问题了。找了一下tomcat的配置文件,发现只要在server.xml中:

     <!--  Define a non-SSL HTTP/1.1 Connector on port 8080  -->
    
< Connector  port ="8080"  maxHttpHeaderSize ="8192"
               maxThreads
="150"  minSpareThreads ="25"  maxSpareThreads ="75"
               enableLookups
="false"  redirectPort ="8443"  acceptCount ="100"
               connectionTimeout
="20000"  disableUploadTimeout ="true" />
    
<!--  Note : To disable connection timeouts, set connectionTimeout value
     to 0 
-->

改为

     <!--  Define a non-SSL HTTP/1.1 Connector on port 8080  -->
    
< Connector  port ="8080"  maxHttpHeaderSize ="8192"
               maxThreads
="150"  minSpareThreads ="25"  maxSpareThreads ="75"
               enableLookups
="false"  redirectPort ="8443"  acceptCount ="100"
               connectionTimeout
="20000"  disableUploadTimeout ="true"  URIEncoding ="GBK" />
    
<!--  Note : To disable connection timeouts, set connectionTimeout value
     to 0 
-->

就是加上URIEncoding="GBK"就万事大吉了。
至此,应该再困难的乱码问题都解决了吧。就是要在页面上、数据库中、request里、doGet、doPost方法里面都是中文!看你还有什么地方躲??



Zou Ang 2007-01-23 21:12 发表评论
分享到:
评论

相关推荐

    乱码问题的解决

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

    乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

    在IT领域,乱码问题是一个常见的困扰,尤其是在处理文本数据时。...乱码问题虽然麻烦,但只要了解其产生原因,掌握解决方法,就能有效地应对。在日常工作中,保持良好的编码习惯和规范的操作流程,是预防乱码的关键。

    java乱码问题解决方法

    Java 乱码问题是 Java 开发中常见的问题之一,解决这个问题需要了解 Java 的编码方式、JSP 中文乱码问题、Tomcat 5.5 中文乱码问题、JDBC ODBC Bridge 的 Bug 及其解决方法、Solaris 下 Servlet 编程的中文问题及...

    qt乱码问题解决

    qt乱码问题解决

    Ajax中文乱码问题解决方案

    本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...

    java中文乱码问题解决

    每种编码格式都有其特点和应用场景,了解这些编码格式可以帮助开发人员更好地解决乱码问题。 在Java中,编码问题可以从多方面入手。例如,在读取文件时,需要指定正确的编码格式,以避免乱码问题。在开发Java Web...

    oracle乱码问题解决

    总之,解决Oracle数据库的乱码问题需要深入理解字符集的工作原理,确保所有环节从输入、存储到输出都保持字符集的一致性。在处理中文数据时,选择支持汉字的字符集如GBK或UTF-8尤为重要,以确保数据的准确显示和处理...

    springboot乱码问题解决方案

    SpringBoot乱码问题解决方案 SpringBoot框架是一款流行的Java Web开发框架,但是在实际开发中,开发者经常会遇到乱码问题,导致项目无法正常运行。为了解决这个问题,本文将详细介绍SpringBoot乱码问题解决方案,并...

    解决Ubuntu和Windows的文件乱码问题

    本文详细介绍了如何解决Ubuntu和Windows在处理文件时发生的乱码问题。 首先,我们需要了解文件乱码的原因。Windows系统中的许多纯文本文件(包括压缩文件)默认使用GBK编码,这是一种针对中文字符的扩展字符集。当...

    JSP中文乱码问题解决办法

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

    log4j乱码问题解决办法

    - **修改全局编码设置**:有些情况下,修改`log4j.properties`文件中的编码设置仍然无法解决问题。这时,可以考虑修改JVM启动参数,添加`-Dfile.encoding=UTF-8`等类似的命令来设置全局的文件编码。 - **检查操作...

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

    Java开发乱码问题解决方法汇总 Java开发中乱码问题是非常常见的问题之一,而解决这些问题需要具备一定的技术知识和经验。...如果读者在实际开发中遇到乱码问题,可以尝试使用这些方法来解决问题。

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

    解决方法:解决中文乱码问题的方法有两种,一种是使用POST方式,另一种是使用GET方式。 1、POST方式:在POST方式中,我们可以使用request.setCharacterEncoding("UTF-8")来指定解码方式为UTF-8。这将使服务器使用...

    Linux系统中文乱码解决完整方案

    * 使用 Putty 代替 Secure Shell Client 可以解决中文乱码问题,但不能彻底解决问题。 * 修改 Linux 系统的默认字符集可以彻底解决中文乱码问题。 * 安装 Linux 系统时,采用默认的英文安装,而不要使用中文。 * ...

    properties文件文中乱码问题解决.doc

    Properties 文件文中乱码问题解决 Properties 文件文中乱码问题解决是指在使用 Struts 框架进行国际化操作时,对于中文资源文件的处理问题。在 Properties 文件中,中文字符可能会变成乱码,这是因为 Eclipse 中的...

    soapUI输入中文显示为乱码,响应报文中文乱码问题解决方法.txt

    soapUI输入中文显示为乱码 响应报文中文乱码问题解决方法

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题有多种方法,下面我们将讨论一些常见的解决方法: 1. 在 JSP 文件中指定编码方式 可以在 JSP 文件中使用 `; charset=gb2312"%&gt;` 指定编码方式,这可以确保 JSP 文件中的中文字符正确地显示...

    MySQL数据库系统中文乱码问题及解决方案.pdf

    MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在...本文详细介绍了MySQL数据库系统中文乱码问题的成因和解决方案,为开发者提供了有价值的参考和指导。

    Linux乱码问题解决方案.docx

    本文将介绍 Linux 乱码问题的解决方案,包括安装 ibus 输入法、fcitx 输入法、解决 UTF-8 编码问题、解决 Flash 中的中文显示问题、解决 Java 程序中的中文显示问题等。 一、安装 ibus 输入法 在 Ubuntu 系统中,...

Global site tag (gtag.js) - Google Analytics