乱码

参数从jsp页面传送到controller层的时候经常会发生乱码的问题,在页面编码为UTF-8的前提下,解决方案有二:

一)

        controller接收数据时,将类型强制转换

String keyword = new String(request.getParameter("keyword").getBytes("ISO-8859-1"), "utf-8");

二)

        查看tomcat的配置文件编码,tomcat的默认编码是iso8859-1,而程序的默认编码为UTF-8,这里出现了冲突,所以修改tomcat下的conf/server.xml文件。

找到如下代码:


<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 


这段代码规定了Tomcat监听HTTP请求的端口号等信息。

修改为如下情况:


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


第二种方法,是目前这个项目,应用服务器为tomcat,用的是自己的。遇到问题的时候,首先想到的是第一种方法,确实也是这么解决的。在本地是解决了,但是代码提交之后,在服务器上测试,问题并没有解决,到网上查了一下,才知道是tomcat的问题。

修改tomcat的配置文件时,先是修改的tomcat安装路径下的配置文件,重启项目之后并没有效果,再次查看tomcat的配置文件,修改过的代码又还原回去了。

最后在下图的位置修改的配置文件,启动之后,就可以了。





除此之外还想说一个ssm框架插入mysql数据库中文乱码问题解决:

1.      检查web.xml

    <!-- 编码过滤器 --> 

    <filter> 

        <filter-name>encodingFilter</filter-name> 

        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 

        <async-supported>true</async-supported> 

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

 

2.      检查建表脚本:

CREATE TABLE `t_user_info` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `user_name` varchar(40) NOT NULL COMMENT '用户名',

  `password` varchar(255) NOT NULL COMMENT '密码',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';

 

3.      检查项目工程及jsp/java/xml文件

 

4.      检查jdbc.properties

url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=UTF-8


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值