文档章节

mybatis连接mysql数据库插入中文乱码

 阿K1225
发布于 2017/09/05 16:20
字数 577
阅读 21
收藏 0

对于mysql数据库的乱码问题,有两中情况:

1. mysql数据库编码问题(建库时设定)。

2. 连接mysql数据库的url编码设置问题。

 

对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候,选择UTF-8字符集。我试过修改现有数据库字符集为UFT

-8,但是根本不起作用,插入的中文仍然乱码(中文显示成:???)。重建库时选择字符集为UTF-8之后,中文正常显示了。

 

对于第二个问题,是这样的情况:我建库时设置了数据库默认字符集为UTF-8,通过mysql workbench直接插入中文显示完全正常。但是使用mybaits插入数据时,中文显示成了"???"这样的乱码。但从数据库获取的中文不会乱码。跟踪数据库操作,SQL语句中的中文还是显示正常的,但是插入到mysql数据库后就乱码了,于是判断可能是数据库连接的问题。后来在网上找了下资料,发现确实可以为mysql数据库的连接字符串设置编码方式,如下:

jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8

添加了useUnicode=true&characterEncoding=utf8参数之后,插入中文就正常了。

 

添加的作用是:指定字符的编码、解码格式。

     例如:假设mysql数据库用的是GBK编码(也可能是其它,例如Ubuntu下就是latin1),而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:

1. 存数据时:

     数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

2.取数据时:

     在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

 

mysql设置编码格式

SET character_set_client='utf8';  
SET character_set_connection='utf8';  
SET character_set_results='utf8';  

本文转载自:http://blog.csdn.net/zht666/article/details/8955952

共有 人打赏支持
粉丝 4
博文 124
码字总数 29897
作品 0
浦东
mybatis连接mysql数据库插入中文乱码

对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定)。 2. 连接mysql数据库的url编码设置问题。 对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候...

有资本再款
2015/09/09
100
0
java通过mybatis往mysql数据库插入数据乱码

今天发现了一个问题,通过mybatis往数据库插入数据后,在数据库中所插入的中文乱码,开始以为是mysql编码设置问题,于是设置了mysql数据库的编码,但是不起作用,自己写的sql语句有中文插入也...

留给明天
2016/01/29
63
0
Mybatis问题点汇总

1、在mybatis链接mysql时候,出现中文乱码情况,排除了不是数据库的编码问题 jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8 添加了useUnicode=true&characterEn...

吹比龙
2016/04/28
34
0
Linux下Tomcat向MySQL插入数据中文乱码解决办法

Linux下Tomcat向MySQL插入数据中文乱码解决办法 一、问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二、解决办...

Qiu_CJ
04/12
0
0
navicat for mysql插入中文乱码

如题,用navicat里的命令行执行insert语句后中文显示乱码,而用windows dos窗口执行insert 语句时则正常显示。首先确定我在navicat中创建数据库时编码选的就是utf-8。 网上查了很多,方法有:...

liuhuics10
2016/03/01
326
0

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu 安装ssh服务以及开启root用户ssh登录

一、安装ssh服务 安装ssh服务 sudo apt-get update sudo apt-get install openssh-server 安装完成后启动ssh服务 sudo service ssh start 二、开启root用户ssh登录 解决root远程ssh不能登录,...

15834278076
23分钟前
1
0
AndroidRX

1.延时并切换回主线程执行 Observable.just(true).delay(2, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Boolean>() { [@Override](https://my.......

我是菜鸟我骄傲
51分钟前
1
0
申请Let's Encrypt永久免费SSL证书

环境安装 1、安装git yum install git-core 2、安装python 系统自带 不用安装 只要版本大于2.7即可。 获取Let's Encrypt免费SSL证书 先停止nginx 在阿里云安全组里加入 443端口的入规则 git ...

HGMrWang
59分钟前
2
0
如何使用playframework进行更好的开发

1: 自定义基类Controller 相信刚开始使用Play的人写的Controller 都继承于 play.mvc.Controller , 但这并不是一个很好的选择,自建基类Controller可以扩展更多的功能。 1.1 验证功能。 后台...

tuerqidi
今天
9
0
《JavaScript高级程序设计(第3版)》阅读笔记

第6章 面向对象的程序设计 6.2 创建对象 6.2.1 工厂模式 JavaScript创建对象(一)—— 工厂模式 6.2.2 构造函数模式 JavaScript创建对象(二)——构造函数模式 6.2.3 原型模式 JavaScript...

Bob2100
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部