`
hgq0011
  • 浏览: 549131 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

中文乱码问题

阅读更多
      晕了一上午碰到了从JSP页面请求到ACTION中出现了中文问题。找了很久也不知道到底问题出现在那,郁闷呀。总觉得很奇怪,因为我是原来的系统(中文传递没有问题)中加入一些页面,也添加了一个Action,可它有中文问题了。想了很久也不能解决,真是呀。最后,我干脆把原来的系统还原,然后重新在系统中添加所要修改的东东,居然没有问题了。
总结一下原系统解决乱码的方案:
   1)采用国际化。这样能解决页面的中文乱码问题。

    a)把页面中所出现的中文写到属性文件中,例如:messages_zh.properties,
shipment.system = 出货小系统
shipment.jsnum 
= 条码
shipment.stylenum 
= 款式
    
                 b)native2ascii把文字转换成ascii码,
D:\project\shipment\web\WEB-INF\classes>native2ascii messages_zh.properties mess
ages_zh_CN.properties

    c)页面统一采用utf-8编码
<%@ page pageEncoding="utf-8" contentType="text/html;charset=utf-8" %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

     d)在web.xml文件中引入JSTL与WEBWORK集成的类
 <!-- Define the basename for a resource bundle for I18N -->
    
<context-param>
        
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
        
<param-value>messages</param-value>
    
</context-param>

       <!-- 采用filter编码转换-->
    
<filter>
                
<filter-name>Set Character Encoding</filter-name>
                
<filter-class>org.appfuse.web.SetCharacterEncodingFilter</filter-class>
        
</filter>

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

      
              e)filter类把请求的统一转换成utf-8,(在2.1.7版本以后自己处理好了)如下:
package org.appfuse.web;

/**//**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: 2005-8-11
 * Time: 13:17:00
 * To change this template use File | Settings | File Templates.
 
*/

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 SetCharacterEncodingFilter implements Filter{

    
public void init(FilterConfig arg0) throws ServletException {

    }


    
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        
/**//*
         * Servlet编码
         
*/

        request.setCharacterEncoding(
"utf-8"); 
        chain.doFilter(request,response);
    }


    
public void destroy() {

    }


}

    
                ee)在web-inf\classes中的webwork.properties文件(可能这个就能取代上面的,有待测试)中加入
webwork.custom.i18n.resources=messages
webwork.locale
=zh_CN
webwork.i18n.encoding
=GBK
 
                f)在页面中还需添加JSTL标签,当然在classpath下要加入相关的类包
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
   
   g)现在在页面中就可以采用jstl的EL来引入了
<fmt:message key="shipment.shipment"/>
        
        2)把tomcate下面的conf文件夹下的server.xml文件中加入 URIEncoding="GBK",有了上面的可能这一个也是多余的,如:
 <Connector 
port="8080"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups
="false" redirectPort="8443" acceptCount="100"
               debug
="0" connectionTimeout="20000" 
               disableUploadTimeout
="true" URIEncoding="GBK" />
   
 
  现在想想,当时可能我太性急,有点慌,盲目,所以没有注意到原来我在系统中加入了filter来转换编码(utf-8),而在我新添加的页面中没有注意到这一点,所以怎么处理还是有乱码。所以在以后的开发当中一定要沉着冷静专注,要弄清其所以然,才能顺利的解决好问题。
分享到:
评论

相关推荐

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

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

    hadoop中文乱码问题

    【Hadoop中文乱码问题详解】 在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储(HDFS)和分布式计算(MapReduce)的能力。然而,在处理包含中文字符的数据时,用户可能会遇到中文乱码的问题...

    解决JSP中文乱码问题

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

    sqlite3 for delphi 解决中文乱码问题

    "sqlite3 for delphi 解决中文乱码问题"这个主题,正是针对这一问题提供了解决方案。这里我们将详细探讨SQLite3在Delphi中的应用,中文乱码的成因,以及如何通过自定义修改来解决这个问题。 首先,SQLite3是一个轻...

    Ajax中文乱码问题解决方案

    然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...

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

    MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在...

    java中文乱码问题详解--- java中文乱码问题详解

    ### Java中文乱码问题详解 #### 一、中文问题的来源与背景 计算机技术发展初期,操作系统主要支持单字节的ASCII字符集。随着全球化进程加快和技术进步,为支持多种语言,尤其是双字节编码的语言(如中文),提出了...

    使用ODBC中文乱码问题.docx

    ODBC中文乱码问题解决方案 在使用ODBC对数据库进行中文字符串插入时,经常会遇到中文字符串显示乱码的问题。本文将通过对该问题的分析和解决方案,帮助读者更好地理解ODBC中文乱码问题的成因和解决方法。 一、问题...

    ArcGIS 10.X导出dbf文件时出现中文乱码问题修复补丁.rar

    本压缩包文件“ArcGIS 10.X导出dbf文件时出现中文乱码问题修复补丁.rar”就是针对这个问题提供的一种解决方案。 标题中提到的“ArcGIS 10.X”指的是ArcGIS软件的10.x版本系列,这个系列包括10.0、10.1、10.2直至...

    editplus插件htmlFormatter.js解决中文乱码问题

    首先,我们了解下中文乱码问题的背景。在处理包含中文字符的HTML文件时,如果没有正确设置编码或者在格式化过程中编码转换不当,就可能出现中文乱码现象。这不仅影响代码的可读性,也可能导致程序运行错误。因此,...

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

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

    struts 中文乱码问题解决

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

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

    FORM表单中文乱码问题分析与解决 在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致...

    JSP中文乱码问题解决办法

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

    解决linux下oracle中文乱码问题,添加中文支持

    解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...

    解决PD4ML导出pdf中文乱码问题

    然而,当处理包含中文字符的文档时,可能会遇到乱码问题。这个问题通常源于编码设置不正确或者字体支持不足。 首先,我们要理解中文乱码的根源。在计算机系统中,文本是以特定编码方式存储的,如UTF-8或GBK。如果...

    extjs 前后台交互参数出现中文乱码问题的解决方法

    ### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...

    linux下中文乱码问题

    Linux 下中文乱码问题解决方法 Linux 操作系统中,中文乱码问题是一个常见的问题,它是由系统集成的字符集引起的。由于不能正确地使用相对应字符的字符集,因此 OS 不能识别出文字,导致了乱码。解决这个问题的方法...

Global site tag (gtag.js) - Google Analytics