关于Struts和JSP乱码问题特别注意事项(易忽略)

最近完成一个项目,其中遇到了两次比较诡异的乱码问题,在这里记录一下,给自己提个醒,也为后来者提供参考。

这是一个用SSH实现的项目,为了防止乱码,从数据库到页面编码,再到struts的默认编码方式全部设置为了utf-8(具体设置方式网上有很多资料啦,这里不赘述了),以为这样就能没有后患了,但事情发展没有这么顺利。

1. 使用post的方式提交表单一切数据正常,使用get的方式提交表单则会有中文乱码。这是因为URL的编码问题产生的,URL的默认编码并不是utf-8,所以需要在Tomcat的conf文件夹下修改server.xml中的加入URIEncoding="UTF-8"

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

2.页面所有数据显示正常,包括中文等,没有乱码。但是打开源文件发现只要是通过struts标签从后台拿到的数据都是乱码,类似一堆数字。在一般情况下,这个问题没什么影响,毕竟页面显示正常,但是在显示由富文本框提交的显示的数据时,会直接打印出标签信息,而不是进行解析,如本应显示粗体<b>,会直接打印<b>...</b>。刚开始很困惑,后来一想,从后台拿来的数据都是正常的,为什么到了页面就会出现这种情况,问题肯定出在struts标签上,后来一查Tag Reference,发现<s:property/>有个属性叫escape默认为true,意思是会跳过对html的解析,所以只要设置escape="false"就不会有问题了,再回头看源文件,内容页正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值