当前位置:编程学习 > JAVA >>

Struts2中的中文乱码问题求大神解决

我用struts2做BBS现在出现了表单提交中文出现乱码的问题!我跟踪调试了数据没进数据库就已经是乱码了!去网上搜了很多解决方法始终没有解决!
下面发下我的设置!
1.<%@ page language="java" import="java.util.*" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
2.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
求高手帮助啊困扰很多天了 --------------------编程问答-------------------- 表单的提交方式是get还是post? --------------------编程问答-------------------- 创建一个过滤器,在过滤器的doFilter方法中加入这行代码request.setCharacterEncoding("utf-8");
如果还不行,那检查下你的数据库编码是否支持utf-8

正常情况下以上两步可以帮你解决问题,如果还解决不了,再议。 --------------------编程问答-------------------- 方法1、在struts.xml中添加:<!-- 指定默认编码集,作用于HttpServletRequest的SetCharacterEncoding方法和freemarker、velocity的输出 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
方法2、如果你用的是Mysql数据库,试试在连接的后面指定编码格式:jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=UTF-8
方法3、加过滤器

如果上述方法不行的话就把上面的三个都弄上     --------------------编程问答-------------------- 在web.xml中加上下面这句:
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
再有问题我自杀 --------------------编程问答--------------------
引用 4 楼 nicholasbobo 的回复:
在web.xml中加上下面这句:
Java code?12345678<filter>        <filter-name>struts-cleanup</filter-name>        <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>    </f……




<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>


URIEncoding="UTF-8"
--------------------编程问答-------------------- 改用post提交 再用4.5楼的方法  不行的话4楼就可以安心的去了 --------------------编程问答-------------------- 看到乱码就头大。。把所有能设charset的地方全部设成utf-8 --------------------编程问答-------------------- 项目里面的编码必须统一 
jsp的utf-8
struts配置文件utf-8
post提交
基本可以解决
如果不行可以加过滤器过滤 这个需要在web配置文件中把过滤的文件改为*就是什么文件都过滤
还不行那在action中在设置编码utf-8
HttpServletRequest的SetCharacterEncoding方法response.set……(“utf-8”)
还不行 我也不知道了 --------------------编程问答-------------------- 我的也是struts2编码问题 所有的方法都试了 一点效果都没有 
谁能看出"中文" 这是"中文"的意思? 深深的”妇FU”产C“科K“
Mark 陪楼主等牛人 --------------------编程问答-------------------- 把整个项目的编码设置成utf-8,楼上说了那么多方法总有一个能解决你的问题吧。我用的时候怎么就没遇到表单提交还出现乱码的情况呢 --------------------编程问答-------------------- 应该是项目的编码问题,单一的在项目直接改变编码可能改变不了实质的编码,试试eclipse中window---preferences---contentType---type把项目中对应的各种文件格式改为utf-8再update一下应该可以解决 --------------------编程问答-------------------- Tomcat的server.xml
struts.xml的<constant ... />
web.xml的Filter
Window->preferences下所有的 全部都是utf-8
所有方法全部阵亡
难道是我打开方式不对? --------------------编程问答-------------------- 中文乱码处理就这几个地方,居然全部阵亡。。。。 --------------------编程问答-------------------- 你jsp用的是struts标签还会input标签?如果是input标签的话换位struts标签试试,又是标签也会有问题的,试试 --------------------编程问答-------------------- 你确定你用的是表单提交么?该不会是在表单中使用url提交,也叫表单提交吧? --------------------编程问答-------------------- 我的乱码问题解决!! 把web.xml的
<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
换成
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

我的是数据一到Action就乱码的 不知道楼主是不是这个问题 
--------------------编程问答--------------------
引用 15 楼 lsbggg 的回复:
你确定你用的是表单提交么?该不会是在表单中使用url提交,也叫表单提交吧?

需要楼主确认一下 --------------------编程问答-------------------- 中文乱码处理方法就那么几个,如果一遍试下来都不行,那就不使用中文了呗。最好的方式是使用过滤器,反正我以前使用屡试不爽 --------------------编程问答-------------------- 1.用post提交

2.删除页面的<%@ page %>里面的编码设置保存试试,有两个编码,删除的组合你自己试试

3.Filter设置编码

4.Struts拦截器设置编码

一般经过以上几个解决方法,可以解决你的问题了。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,