因为hibernate底层使用的是jdbc的技术,所以我参考了别人使用jdbc保存数据到mysql里面时解决乱码问题的方法!

首先要告诉数据库要插入的字符串的字符集,mysql 默认使用的字符集是 latin1。我要保存的字符串是 UTF-8 编码的(字符集是 Unicode),所以包含这个字段的表应该使用 UTF-8 编码。

这里有几种解决办法。

1、在建立数据库的时候指定数据库的字符集编码,这样,这个数据库的所有表都会默认使用数据库的字符集编码。如create database foo charset utf8;

2、在建表的时候指定字符集编码。如create table foo (id char(20)) charset utf8;

3、指定某一列使用的字符集编码。如create table foo (id char(20) charset utf8);

如果你有需要的话还可以指定字符排序的规则,也就是指定 collation,如create database foo charset utf8 collate utf8_general_ci;,同样也可以指定单独的表、列使用的 collation 规则。

然后在使用 jdbc 连接数据库的时候要告知 jdbc 使用什么字符集编码来跟服务器通信。很简单,只需要在 jdbc 指定数据库路径时做一点修改就可以了。比如,jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8。注意如果在 XML 文件里面的话 “&” 要改成 “&amp”。

完整的写法:jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8

在hibernate的配置文件里面修改代码如下:

jdbc:mysql://127.0.0.1:3306/hello?useUnicode=true&characterEncoding=UTF-8

如果你使用的是 gbk 编码的话把上面所有提到utf8 的地方改成gbk 应该就可以了,只要服务器和客户端使用的字符集编码统一就可以了。

以下这个是使用 mysql的【命令行】来完成插入的。

mysql 命令行客户端默认使用的字符集也是 latin1,如果你通过这个来插入中文的话也会出现乱码的情况。解决的办法是执行语句set names 'utf8'来告诉服务器使用 UTF-8 编码来和客户端通信。你也可以使用set charset 'utf8',它和 set names 区别只在于 collation 上。set names 和 set charset 都相当于执行了三条语句,具体的内容可以去看 mysql 文档 10.4 节。我想这个方法在使用 jdbc 的时候也是可以的,所以如果 jdbc 的指定数据库地址中没有告知使用的字符集编码的话可以通过执行上面的语句来达到相同的效果。

hibernate保存mysql乱码_hibernate保存数据到mysql时的中文乱码问题相关推荐

  1. mysql导入数据库注释乱码_source命令 导入.sql文件时,中文乱码 或者是注释乱码...

    1.source命令 导入.sql文件时,中文乱码 或者是注释乱码 首先进入dos命令,进入mysql数据库,之后use 数据库:之后查看你的mysql数据库编码 如下命令:模糊查询变量charact ...

  2. kafka配置文件 中文乱码_使用kafka consumer api时,中文乱码问题

    使用Intelli idea调试kafka low consumer时,由于broker存储的message有中文, idea中console端是可以正确显示的 然后mvn package打包到服务器 ...

  3. mysql脚本执行中文乱码_MySQL从命令行导入SQL脚本时出现中文乱码的解决方法

    本文实例讲述了MySQL从命令行导入SQL脚本时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 在图形界面管理工具 MySql Query Browser中打开脚本(脚本包括建库.建表.添加 ...

  4. MySQL 插入数据时,中文乱码问题的解决

    MySQL 插入数据时,中文乱码问题的解决 参考文章: (1)MySQL 插入数据时,中文乱码问题的解决 (2)https://www.cnblogs.com/sunzn/archive/2013/0 ...

  5. Activiti保存.png 流程图片文件且解决idea中保存图片时显示中文乱码的解决方法

    Activiti保存.png 流程图片文件且解决idea中保存图片时显示中文乱码的解决方法 Eclipse 工具中的操作 流程图片生成的两种方式: 使用 activiti-designer 设计流程图 ...

  6. mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法

    mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法 1.先查看库.表.表字符字段的编码格式.MySQL默认的库和表的字符编码都是latin1,而我们一般需要使用 utf8 //先查看 ...

  7. 爬取html数据中文乱码,解决PHP中file_get_contents抓取网页中文乱码问题

    根据网上有朋友介绍说原因可能是服务器开了GZIP压缩. 下面是用firebug查看我的博客的头信息,Gzip是开了的. 请求头信息原始头信息 代码如下 复制代码 Accept text/html,ap ...

  8. ssm idea后端接收数据输出在控制台时出现中文乱码

    idea 后端接收数据输出在控制台时出现中文乱码 环境 maven项目, ssm框架(spring+springmvc+mybatis)注解和配置文件混合开发, tomcat服务器 解决乱码的方式(推 ...

  9. spring使用@Value注解读取.properties文件时出现中文乱码问题的解决

    spring使用@Value注解读取.properties文件时出现中文乱码问题的解决 参考文章: (1)spring使用@Value注解读取.properties文件时出现中文乱码问题的解决 (2) ...

  10. 解决在Linux下安装Oracle时的中文乱码问题

    解决在Linux下安装Oracle时的中文乱码问题 参考文章: (1)解决在Linux下安装Oracle时的中文乱码问题 (2)https://www.cnblogs.com/qiumingcheng ...

最新文章

  1. 利用python+seleniumUI自动化登录获取cookie后再去测试接口,今天终于搞定了
  2. Verilog中inout端口的使用方法
  3. STL之nth_element__寻找第n大的元素
  4. jeecg中ajax传值的前端js和后台代码
  5. java 如何将word 转换为ftl_使用 freemarker导出word文档
  6. 网络爬虫--14.【糗事百科实战】
  7. Linux的nfs文件服务
  8. duilib之源码分析
  9. hdu acm2548
  10. 网站smtp服务器,SMTP服务器
  11. 将图片背景处理为透明的方法步骤
  12. 超详细的Django面试题
  13. vscode配置esp32开发环境:ESP-IDF VS Code Extension 没有 Using Existing Setup
  14. 《算法图解》读书笔记—像小说一样有趣的算法入门书
  15. 黑白照片如何变彩色?建议收藏这些方法
  16. HDU-1111解题报告
  17. 计算机网络笔记及思维导图(1)——概述
  18. java生成一条唯一的邀请码_如何实现用户id生成一个唯一邀请码
  19. iphone开发相关的网站
  20. html页面性能测试

热门文章

  1. 斯坦福大学机器学习公开课视频及课件
  2. SEOer必须注意的10种错误SEO做法
  3. Project FreeEIM 2.0:重现失落的飞鸽传书
  4. 乔布斯亲自致电原报道记者否认自己癌症复发
  5. 如何在其他程序的窗口上创建按钮并使之能响应
  6. Tip of the day的bug
  7. 28岁程序员狂赚上亿宣布退休,网友:这就是命!
  8. 电脑开启上帝模式,300多个系统功能都在这里!
  9. 如何批量在文件夹中建立php,怎么批量创建文件夹_一次性创建多个文件夹方法_一聚教程网...
  10. 腐蚀和膨胀(erode and dilate)