`
啸笑天
  • 浏览: 3465811 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

解决Struts2中文乱码的几种方法

阅读更多

感谢:http://akunamotata.iteye.com/blog/460654

在使用struts2的 struts-tags的是碰到了乱码问题。 
  心里愤愤,觉得这个乱码问题都解决过几次了,怎么还会被撞上了?! 
  先把以往需要设置的点罗列一下: 
  1. JSP 文件头    
   
  2. struts.properties中的编码设定 
  struts.locale = UTF-8 
        struts.i18n.encoding=utf-8
  3. Resource的native2ascii 转码 
  通常这些搞定就能解决编码问题了。 
  再过一点在web.xml里面配置一个编码的filter: 
   
  struts-cleanup 
   
  org.apache.struts2.dispatcher.ActionContextCleanUp    
   
  struts-cleanup 
  /* 
   
  不过这次我碰到了一个这些都不能解决的问题。仍然是乱码。 
  仔细回想了一下自己的各个环节有什么不同, 
  我在eclipse里输入中文的,所以把中文素材文件设置成了utf-8格式。 
  这个在editplus中看起来是乱码的,刚好乱码的结果和web显示的一样。 
  于是问题找到了,使用editplus重新改写了一下中文。 
  然后native2ascii一下放上去果然就好了。
本文来自: IT知道网(http://www.itwis.com ) 详细出处参考:http://www.itwis.com/html/java/struts/20080313/1081.html

 

另一种方法

jsp向action提交数据时出现乱码的解决办法:

在web.xml中,添加filter

//***************************************

<!-- 注:filter1开始 --> 
<filter>
        <filter-name>encodingFilter</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>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<!-- 注:filter1结束 -->

<!-- 注:filter2开始 --> 

 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  <init-param>
   <param-name>actionPackages</param-name>
   <param-value>com.tongcard.demo.web.actions</param-value>
  </init-param>
 </filter>
 
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
     <!-- 注:filter2结束 --> 

//*******************************************

注意两个filter顺序不能颠倒!

 

最后,还有一种方法

jsp文件中使用struts2 <s:form>表单,设置<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=GBK"%>


向mysql数据库中插入数据时,中文总是乱码,开始以为是数据库的问题,因为mysql经常出现这样的问题,头都大了,后来重新配置数据库,编码都设为gbk,重新建库,结果还是乱码!气的想把电脑给砸了!
试着从数据库的控制台输入中文,居然能正确显示,总算有点希望了,说明数据库没问题了,那应该是程序有问题!


在action中接收表单值的setter方法处设置断点,用debug一查variable,结果这里是乱码!百思不得其解,jsp头都 设置成gbk了,为什么提交的中文是乱码呢?查struts2的doc,找到form的属性,没有发现有设置编码的地方啊!去网上搜索,“struts 2 form 中文乱码”,原来是default.properties文件中设置了struts.i18n.encoding=UTF-8,于是在 struts.xml中设置<constant name="struts.i18n.encoding" value="GBK"/>,再次调试,用debug一查,果然是中文了,呵呵!

总结:

问题:jsp中设置编码为gbk,用struts2的form表单提交中文出现乱码
原因:struts2默认提交的字符编码是utf-8,与gbk不一致!
解决办法:在struts.xml或是struts.properties文件中讲struts.i18n.encoding设置为gbk,一切就ok了!

分享到:
评论

相关推荐

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    struts2中文乱码问题

    本文将详细介绍几种解决Struts2中文乱码问题的方法。 #### 方法一:设置JSP页面编码 首先,可以在JSP页面中设置正确的字符集编码。例如,可以将页面编码设置为`GB18030`,这是一种兼容GB2312、GBK,并支持更多汉字...

    struts2的中文乱码问题解决

    ### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...

    struts1.2 解决中文乱码

    #### 二、解决中文乱码的方法 针对上述问题,下面将详细介绍几种有效的解决方案: ##### 1. 修改请求参数编码 **方案说明:** 通过自定义 RequestProcessor 实现对请求参数的编码转换,确保请求参数能够被正确...

    Struts中文乱码解决方案

    总结来说,解决 Struts 中的中文乱码问题通常需要从以下几个方面入手: 1. 在 Action 类中对乱码的字符串进行编码转换。 2. 在 ActionForm 的 `reset` 方法中设置请求的字符编码。 3. 自定义 RequestProcessor 并...

    Struts2乱码终极解决办法

    在Struts2框架中,中文乱码主要由以下几个方面的原因造成: 1. **请求编码问题**:客户端发送请求时未指定正确的字符集。 2. **响应编码问题**:服务器端处理请求并返回结果时,字符集设置不正确。 3. **配置文件...

    struts处理中文乱码问题总结

    本文旨在通过对网络资料与实践经验的综合分析,总结出一套有效的方法来解决Struts中的中文乱码问题。 #### 二、Struts中文乱码问题分类 根据乱码出现的位置与场景不同,可将其大致分为以下几种类型: 1. **页面...

    Struts2下载文件中文乱码处理

    ### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...

    struts2乱码处理

    本文将针对Struts2中的中文乱码问题提供几种解决方案,包括在不同场景下的处理方法。 #### 解决方案概述 **方案一**:适用于前台通过URL传递中文参数的情况,主要利用`jQuery`对中文参数进行编码处理。 **方案二*...

    struts解决乱码问题

    本文将通过分析“struts解决乱码问题”的具体案例,来详细介绍几种常见的乱码处理技巧。 #### 一、页面(HTML) 1. **静态页面** - 在创建HTML页面时,需明确指定页面的编码格式。 - 做法: 1) 创建HTML页面时...

    Struts2zhogn乱码处理

    ### Struts2中乱码处理方法详解 #### 一、问题背景 在Web开发中,尤其是使用Java EE框架如Struts2进行项目开发时,字符编码问题常常困扰开发者。如果项目中的不同环节(如前端页面、后端处理、数据库存储等)采用...

    Struts的乱码问题

    针对上述问题,我们可以采取以下几种方法来解决Struts框架下的乱码问题: 1. **设置正确的字符集**: - **在Tomcat配置文件中设置**:修改`server.xml`文件中的Connector节点,添加`URIEncoding="UTF-8"`属性,...

    sshz中文乱码解决方法

    对于基于SSH(Spring+Struts2+Hibernate)框架的Web应用来说,解决中文乱码通常需要从多个层面入手。 ##### 2.1 配置Struts2的国际化编码 可以在`struts.xml`文件中添加如下配置来设置应用默认使用的编码格式: `...

    java编程出现中文乱码解决方法一

    这种方法适用于以下几种情况: - 当前端发送的数据是以ISO-8859-1编码时,而后端期望使用UTF-8编码处理数据。 - 在读取文件或数据库中的数据时,如果文件或数据库中的数据采用的是ISO-8859-1编码,但应用期望以UTF-8...

    struts乱码处理

    针对以上问题,我们可以通过以下几种方法来解决Struts中的乱码问题: 1. **修改`web.xml`配置** 在`web.xml`文件中添加过滤器,统一设置请求编码为UTF-8,这种方法简单有效,但题目要求不使用过滤器,因此我们...

    Struts 乱码问题

    除了上述针对`&lt;s:url&gt;`标签的解决方案外,还有其他几种常见的乱码问题及其解决策略: 1. **HTML表单提交编码**:在HTML表单中显式指定`&lt;form&gt;`标签的`enctype`属性为`multipart/form-data`或`application/x-...

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

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

    java中文乱码解决方案

    下面详细介绍几种有效的解决方法。 #### 1. JSP页面中的字符编码设置 在JSP页面中,可以通过以下方式设置字符编码为UTF-8: ```jsp ; charset=UTF-8" %&gt; ``` 对于传统的JSP + JavaBean + Servlet模式的应用程序...

    java web开发解决乱码问题

    乱码主要由以下几种情况引起: 1. **页面本身的编码与浏览器解析编码不一致**:例如页面实际编码为GBK,但浏览器默认按照ISO-8859-1解析。 2. **请求参数的编码问题**:GET或POST请求中携带的参数未正确设置编码。 ...

    处理Structs乱码的3种方法

    当我们处理Structs中的中文乱码时,有几种有效的方法可以解决这个问题。下面将详细介绍这3种方法,并结合URL重写中汉字编码处理的总结。 **方法一:设置字符编码过滤器** 在Structs应用中,我们可以通过添加一个...

Global site tag (gtag.js) - Google Analytics