MySql中文乱码解决方法

一、编码基础

1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;

2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;

3.getBytes() 是通过平台默认字符集进行编码;

项目开发中应遵循的标准是,数据库,表,字段和页面或文本的编码要统一。

二、应用

Mysql可以通过命令来查询当前数据库的编码方式

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.13, for Win64 (x86)

Connection id:          2
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.5.13 MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 1 hour 43 min 11 sec

Threads: 1  Questions: 9  Slow queries: 0  Opens: 33  Flush tables: 1  Open tabl
es: 0  Queries per second avg: 0.1
--------------

我们也可以通过修改my.ini文件来修改编码方式,但是要重启Mysql服务才可生效

default-character-set=utf8

若修改后,程序存入数据库是还出现乱码可以执行以下步骤:

1、连接数据库设置编码

jdbc:mysql://localhost:3306/test?characterEncoding=utf8
 
java中的常用编码UTF-8;GBK;GB2312;ISO-8859-1;

对应mysql数据库中的编码utf8;gbk;gb2312;latin1

---------------------------

2、数据库连接串中指定字符集URL=jdbc:mysql://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=gbk 

这时候问题基本可以解决



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值