ssh2整合时乱码问题

本文详细介绍了在整合SSH2时遇到的乱码问题及其解决方案,包括页面、action和数据库乱码的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   ssh2整合时遇到的乱码问题

    最近在整合SSH2时遇到了乱码问题,我使用的是struts.2-3-12, hiberntae-3.3, spring3.0,提交英文是没有问题的,但是提交中文时,会出现???? 而且在mysql中也是乱码。由于我全部统一为utf-8,数据库也是,当然 也可以全部设为GBK。花了一个早上终于解决了,现在写一些上网搜到的解决方法,出现乱码的原因也就是页面乱码、action乱码,还是数据库乱码,这个三方面。所以解决问题时,可以单方面一个个的测,分层思想来分析问题。

    页面乱码

   1.可以右键打开项目,点击properties,然后查看Text file encoding的两个选择,默认是为GBK。这里我选择了UTF-8

   如图:

  这里也有可能出现问题,所以大家可以看看~

  2.然后就是JSP页面的编码要设置成UTF-8

  3.在Tomcat中找到server.xml文件,并且修改成

  action乱码

  1.可以在struts.xml中添加  <constant name="struts.i18n.encoding" value="UTF-8"></constant>

  2.还可以struts2-core-2.3.12.jar包中的org.apache.struts2中找到default.properties查看struts.i18n.encoding=UTF-8是否统一,默认为UTF-8。

  3.还可以交给spring过滤器来管理,在web.xml中配置为

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

   就是添加URIEncoding="UTF-8",我就是问题,不要写成URL,而是URI。 URI:Web上可用的每种资源 - HTML文档、 图像视频片段、 程序等 - 由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位。

  

<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>

 这个配置一定要在struts2的拦截器之前配,不然会失效

  4.最后如果还是不行,可以自己写个过滤器,提前接收request请求,对字符进行处理,这里不展开详解了。

  数据库乱码

  这里我使用的是mysql,由于dos的mysql管理,是不支持UTF-8,要想在cmd下显示中文,必须设置成GBK,或者使用其它的连接软件来管理mysql,比如Toad for mysql,MySQL Query Browser等。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值