表单提交后数据中文乱码的终极解决方案

1、查看页面是否使用utf-8编码

①jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
②html页面:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

2、在数据库连接url后面加上unicode参数

①使用的是非properties文件(如在hibernate.cfg.xml中配置):
<property name="hibernate.connection.url">
        jdbc:mysql://localhost:3306/数据库名?useUnicode=true&amp;characterEncoding=UTF-8
    </property>
②使用的是properties文件(重点):
jdbcUrl=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8

注意,如果你使用的是properties文件配置数据库的连接信息,参数连接一定要用&,不要使用& amp;,不然会失效!!!

3、在struts.xml中使用国际化

<constant name="struts.i18n.encoding" value="UTF-8" />

4、使用全局中文乱码过滤器

可参考我之前写的文章:http://blog.csdn.net/csdn_lqr/article/details/52901898

个人感悟:

实际开发中,如果使用的是ssh框架,到了第2步基本不会出现中文乱码问题了,如果使用的是servlet的话,建议使用全局中文乱码过滤器。说白了,中文乱码问题就是编码不一致导致的,只要保证了前端(页面使用meta标记utf-8),后端(对参数的解析、与连接库的连接),和数据库(数据库的编码格式)都使用统一的编码,一般不会出现乱码问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值