记一次SSH中文乱码解决方案
来源:互联网 发布:用户行为分析python 编辑:程序博客网 时间:2024/05/20 06:22
前言:项目中有中文乱码是因为乱码编码产生。
近期在用SSH写OA系统的时候遇到中文乱码问题,解决之余写下一丢丢心得,每天进步一小步,又与大神靠近一大步嘛!^_^!
SSH是否还有公司在使用,SSH还配不醅称为三大框架这里先按下不表,这里只是给出某次博主遇到问题的解决方案。
1.数据库的编码。我的项目默认的用的是utf-8,那么在创建数据库的时候一定也要使用utf-8编码,创建数据库的关键语句:
--创建数据库的sql语句--create database oa default character set utf8;--查询数据库编码的sql语句--show create database oa;
2.项目的编码。新建工程,类型为Web Project,设置默认编码为UTF-8。右键项目名称->Properties->Resource->Text file encoding,选择utf-8,点击Apply应用。
3.jsp编码:使用utf-8编码,最好还是在struts.xml配置文件添加过滤编码:
<!--解决乱码 --><constant name="struts.i18n.encoding" value="UTF-8"></constant>
这时候我用debug模式在后台接收参数,得到的编码居然还是乱码,用firebug查看浏览器发起的请求url地址:
http://localhost:8080/MyOa1.0/department_edit.action?id=5&parentId=0&name=%E7%B3%BB%E7%BB%9F%E7%A0%94%E5%8F%91%E9%83%A8&description=%E7%B3%BB%E7%BB%9F%E7%A0%94%E5%8F%91%E9%83%A8&x=36&y=10
url传过去本来就是乱码的,才记得,貌似这种方法对get请求不起作用,只对post起作用,于是把我的form表单换成post请求,这时候后台拿到了正确的内容。
<c:if test="${department.id == null}"> <form action="department_add.action" method="post"></c:if><c:if test="${department.id != null }"> <form action="department_edit.action" method="post"></c:if>
上面是jstl的标签,部门管理模块,可是后台拿到正确的内容不表表插入数据库中也正确,这时候向数据库插入的居然还是乱码,一大堆的????
4.配置Hibernate的编码。在jdbc.proties加上以下后缀:
useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
于是jdbcUrl变成下面的格式:
jdbcUrl = jdbc:mysql:///oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
oa是数据库名称,useUnicode=true和character=utf8相信你见名知意,后面的zeroDateTimeBehavior是什么意思呢?意思是如果有某个字段的时间戳是00000–000 00:00:00的时候,那么返回回来的是null,比如数据库有两个字段有时间有关,creattime和updatetime,在insert的时候,如果你只给createtime赋值,没有给updatetime赋值,那么updatetime就是0年0时0分,这时候用上面提示的后缀会将它映射为null。不然在mybatis中,会报格式错误。
- 记一次SSH中文乱码解决方案
- SSH框架中文乱码终极解决方案
- ssh整合时中文乱码的解决方案(使用filter)
- putty ssh登陆centos linux中文乱码解决方案
- SSH框架+mysql+tomcat 服务器 中文乱码解决方案
- Putty ssh登陆,中文显示乱码的解决方案
- 记一次中文乱码解决过程
- SSH MySql乱码解决方案
- 记一次RedHat中文乱码,中文语言包安装实践
- ssh 中文乱码
- 解决ssh中文乱码
- ssh中文乱码
- SSH 显示中文乱码
- SSH 显示中文乱码
- SSH 显示中文乱码
- SSH 显示中文乱码
- SSH中文乱码
- SSH 显示中文乱码
- 2017国家卫生计生委主任等谈“十三五”开局之年卫生计生改革发展
- Java 多线程:synchronized 关键字用法(修饰类,方法,静态方法,代码块)
- 输入一个奇数n,打印出一个n*n的矩阵,每个数字是从1到n*n的整数,要使每一行,每一列的数字之和都相等
- 系统并行化设计的一次思考
- 【Objective-C Runtime】类和对象的数据结构和消息传递机制
- 记一次SSH中文乱码解决方案
- 51Nod-算法马拉松23-B-谷歌的恐龙(数学期望)
- 程序设计模式(二)创建型模式
- SSH框架搭建电商系统之密码找回
- Java的synchronized关键字:同步机制总结
- 总结
- VirtualBox fedora系统安装增强工具
- 求数组的连续子数组之和的最大值(一维二维)
- 人口模型回归