struts2 中文乱码问题

lbwdi 2009-07-08 11:23:34
1、tomcate6 中 tomcate connector字符的设置了URIEncoding="UTF-8"

2、在项目中struts.properties 添加了

struts.devMode=false
struts.enable.DynamicMethodInvocation=true
struts.i18n.reload=true
struts.ui.theme=simple

struts.locale=UTF-8
struts.i18n.encoding=UTF-8

struts.serve.static.browserCache=false
struts.url.includeParams=none

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、在jsp页面中的也设置了字符编码
<%@page pageEncoding="UTF-8"%>
<%@ page contentType="text/vnd.wap.wml; charset=UTF-8"%>

以上设置完为什么还是有中文乱码的问题?
url中输入了一个中文

在action中用以下代码
String name=request.getParameter("name");
name=new String(name.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(name);
打印出的还是 ??
...全文
512 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yufeng19860804 2012-07-16
  • 打赏
  • 举报
回复
在tomcat的server.xml中添加"URIEncoding='UTF-8'"就可以了。
具体代码如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
lbwdi 2009-07-08
  • 打赏
  • 举报
回复
不是自找苦吃,公司要求的难道不照做。
zhou_1985_liang 2009-07-08
  • 打赏
  • 举报
回复
url中不用中文不就解决了吗?
真不明白,为啥都喜欢在url中传递中文参数,自找苦吃!
gaobaiy 2009-07-08
  • 打赏
  • 举报
回复
手机端传来的参数?

乱码问题表现的地方太多了,不过原理就一样,就是组件之间的编码方式不配。

WEB容器,数据库,页面,参数传递这些只有有一样的编码不同,就会产生乱码?

LZ的参数是手机传来的的话,能了道是用什么编码的吗?

最好把URL进行编码,使用URLEncoder类
lbwdi 2009-07-08
  • 打赏
  • 举报
回复
试了还是一样的。
soulx 2009-07-08
  • 打赏
  • 举报
回复
String name=request.getParameter("name");
name=new String(filename.getBytes("GB2312"), "ISO-8859-1");
System.out.println(name);

这样试一下。
teedry 2009-07-08
  • 打赏
  • 举报
回复
自己写一个过滤器是最好的了,我用strut和Hibernate时就用过滤器来解决中文显示问题, 在web.xml配置过滤器,如:
<filter>
<filter-name>Encoding</filter-name>
<filter-class>过滤器中用到的类</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>

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

过滤器类上网找一个就行了,我曾经就是这样解决的!
ZhaoHuiZiXin 2009-07-08
  • 打赏
  • 举报
回复
<!-- struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

把过滤器配置该一下试一试.
ouwarmth 2009-07-08
  • 打赏
  • 举报
回复
struts乱码原因有很多,如果还不行可以尝试自己写一个过滤器试试~!
lbwdi 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chizx 的回复:]
你是从哪里传过来的值,没必要用URL吧,如果是从ACTION中过来的,可以保存到form bean中或 request.setAttribute()传值,在页面用request.getAttribute()取值
[/Quote]
手机端发一个包含中文的url
  • 打赏
  • 举报
回复
你是从哪里传过来的值,没必要用URL吧,如果是从ACTION中过来的,可以保存到form bean中或 request.setAttribute()传值,在页面用request.getAttribute()取值
  • 打赏
  • 举报
回复
用weblogic服务器应该没乱码问题
wangdawei722 2009-07-08
  • 打赏
  • 举报
回复
是不是你用的开发工具的问题啊!
开发工具的默认编码是什么
可以试着改一下看看

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧