感谢: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中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...
本文将详细介绍几种解决Struts2中文乱码问题的方法。 #### 方法一:设置JSP页面编码 首先,可以在JSP页面中设置正确的字符集编码。例如,可以将页面编码设置为`GB18030`,这是一种兼容GB2312、GBK,并支持更多汉字...
### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...
#### 二、解决中文乱码的方法 针对上述问题,下面将详细介绍几种有效的解决方案: ##### 1. 修改请求参数编码 **方案说明:** 通过自定义 RequestProcessor 实现对请求参数的编码转换,确保请求参数能够被正确...
总结来说,解决 Struts 中的中文乱码问题通常需要从以下几个方面入手: 1. 在 Action 类中对乱码的字符串进行编码转换。 2. 在 ActionForm 的 `reset` 方法中设置请求的字符编码。 3. 自定义 RequestProcessor 并...
在Struts2框架中,中文乱码主要由以下几个方面的原因造成: 1. **请求编码问题**:客户端发送请求时未指定正确的字符集。 2. **响应编码问题**:服务器端处理请求并返回结果时,字符集设置不正确。 3. **配置文件...
本文旨在通过对网络资料与实践经验的综合分析,总结出一套有效的方法来解决Struts中的中文乱码问题。 #### 二、Struts中文乱码问题分类 根据乱码出现的位置与场景不同,可将其大致分为以下几种类型: 1. **页面...
### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...
本文将针对Struts2中的中文乱码问题提供几种解决方案,包括在不同场景下的处理方法。 #### 解决方案概述 **方案一**:适用于前台通过URL传递中文参数的情况,主要利用`jQuery`对中文参数进行编码处理。 **方案二*...
本文将通过分析“struts解决乱码问题”的具体案例,来详细介绍几种常见的乱码处理技巧。 #### 一、页面(HTML) 1. **静态页面** - 在创建HTML页面时,需明确指定页面的编码格式。 - 做法: 1) 创建HTML页面时...
### Struts2中乱码处理方法详解 #### 一、问题背景 在Web开发中,尤其是使用Java EE框架如Struts2进行项目开发时,字符编码问题常常困扰开发者。如果项目中的不同环节(如前端页面、后端处理、数据库存储等)采用...
针对上述问题,我们可以采取以下几种方法来解决Struts框架下的乱码问题: 1. **设置正确的字符集**: - **在Tomcat配置文件中设置**:修改`server.xml`文件中的Connector节点,添加`URIEncoding="UTF-8"`属性,...
对于基于SSH(Spring+Struts2+Hibernate)框架的Web应用来说,解决中文乱码通常需要从多个层面入手。 ##### 2.1 配置Struts2的国际化编码 可以在`struts.xml`文件中添加如下配置来设置应用默认使用的编码格式: `...
这种方法适用于以下几种情况: - 当前端发送的数据是以ISO-8859-1编码时,而后端期望使用UTF-8编码处理数据。 - 在读取文件或数据库中的数据时,如果文件或数据库中的数据采用的是ISO-8859-1编码,但应用期望以UTF-8...
针对以上问题,我们可以通过以下几种方法来解决Struts中的乱码问题: 1. **修改`web.xml`配置** 在`web.xml`文件中添加过滤器,统一设置请求编码为UTF-8,这种方法简单有效,但题目要求不使用过滤器,因此我们...
除了上述针对`<s:url>`标签的解决方案外,还有其他几种常见的乱码问题及其解决策略: 1. **HTML表单提交编码**:在HTML表单中显式指定`<form>`标签的`enctype`属性为`multipart/form-data`或`application/x-...
Properties 文件文中乱码问题解决是指在使用 Struts 框架进行国际化操作时,对于中文资源文件的处理问题。在 Properties 文件中,中文字符可能会变成乱码,这是因为 Eclipse 中的 Properties 资源文件的编码默认...
下面详细介绍几种有效的解决方法。 #### 1. JSP页面中的字符编码设置 在JSP页面中,可以通过以下方式设置字符编码为UTF-8: ```jsp ; charset=UTF-8" %> ``` 对于传统的JSP + JavaBean + Servlet模式的应用程序...
乱码主要由以下几种情况引起: 1. **页面本身的编码与浏览器解析编码不一致**:例如页面实际编码为GBK,但浏览器默认按照ISO-8859-1解析。 2. **请求参数的编码问题**:GET或POST请求中携带的参数未正确设置编码。 ...
当我们处理Structs中的中文乱码时,有几种有效的方法可以解决这个问题。下面将详细介绍这3种方法,并结合URL重写中汉字编码处理的总结。 **方法一:设置字符编码过滤器** 在Structs应用中,我们可以通过添加一个...