MySQL数据库编码的问题解决

数据库 MySQL
我们今天主要向大家描述的是MySQL数据库编码的相关问题的详细解析,如果你对其实际的相关操作感兴趣的话,你就可以点击以下的文章。

以下的文章主要是对MySQL数据库编码的相关问题的全面解析,我们大家都知道Mysql数据库的4.1可以作为一个分水岭,其直接支持的是Unicode,以下的相关版本支持的不是很好。以下就是文章的详细内容。

我们大家都知道Mysql JDBC Driver的3.0.16是一个分水岭,3.0.16版本会取数据库本身的MySQL数据库编码,然后按照该编码转换,这种方式和Oracle的JDBC Driver是一样的。例如你的数据库是GBK编码的话,JDBC Driver就会把数据库里面的取出来的字符串按照GBK往unicode转换,送给JVM。因此正确的设置数据库本身的编码就尤为重要。

 

Mysql JDBC Driver3.0.16以下的版本则不然,它不会那么智能的根据数据库编码来确定如何转换,它总是默认使用ISO8859-1,因此你必须使用 characterEncoding=GBK来强制他把数据库中取出来的字符串按照GBK来往unicode转换。

 

因此,使用什么数据库版本,不管是3.x,还是4.0.x还是4.1.x,其实对我们来说不重要,重要的有二:

 

1) 正确的设定数据库编码,Mysql4.0以下版本的字符集总是默认ISO8859-1,Mysql4.1在安装的时候会让你选择。如果你准备使用UTF- 8,那么在创建数据库的时候就要指定好UTF-8(创建好以后也可以改,4.1以上版本还可以单独指定表的字符集)

 

2) 使用3.0.16以上版本的JDBC Driver,那么你就不需要再写什么characterEncoding=UTF-8

 

这样,如果,数据库服务器使用的是utf-8,那么,jdbc就会把数据库的内容用utf-8格式传到JVM中。

而,如果数据库服务器中的某个数据库使用的编码是gbk,那么就会发生MySQL数据库编码不一致的错误!这时,你可以使?characterEncoding=GBK强制使用gbk编码传递到JVM中。

 

或者,你也可以把整个Mysql数据库服务器的编码转变为gbk。

 

在Mysql中,默认使用的是lartin1,也就是ISO8859-1字符集编码。这是一种8位的编码,适用于所有西欧字符。而对于汉字等是不合适的。

最好、最通用的编码格式是utf-8,这时一种8位的Unicode字符集。它对于8位的西欧字符集来说,比较节省空间,而又能够有效地表示汉字等字符。

因此,将Mysql数据库服务器设置为utf-8格式,把所有的Mysql数据库也设置为utf-8格式,这是最佳的选择!全世界所有语言都可以很好的得到支持!

但是,一些常用的Mysql工具无法显示utf-8格式的中文。如,Mysql自带的工具,Mysql-Front等软件。但是,MyManger和命令行下的Mysql是可以正常显示utf-8格式的中文的。

如果,你选择使用gbk,那么就应该把数据库服务器和数据库的MySQL数据库编码格式全部转为使用gbk,否则可能会出现问题。

【编辑推荐】

  1. 对Oracle安全性的建设的建议
  2. Oracle LogMiner工具的具体使用方法
  3. Oracle死锁进程的关闭实操
  4. Oracle跟踪事件的包括那些?
  5. 实现Oracle 客户端配置的具体步骤

 

 

 

责任编辑:佚名 来源: 博客园
相关推荐

2019-07-16 06:30:19

MySQL同步延迟数据库

2011-08-23 09:45:34

SQL Server多表关联汇总查询

2009-02-18 14:28:23

编码乱码JSP

2010-05-11 18:14:52

Mysql数据库编码

2011-08-12 13:18:30

Oracle数据库存储过程

2010-05-05 14:20:46

AIX CDE

2010-05-13 17:33:24

MySQL索引

2010-04-28 18:01:15

Unix系统

2010-06-17 11:35:24

Ubuntu 修复Gr

2011-06-27 16:44:59

Qmake

2011-06-13 16:16:32

Qt 中文问题

2011-07-28 11:28:21

SQL Server数注册表编辑器

2011-08-10 13:46:36

Navicat MySMySQL

2011-08-25 18:35:07

Linux cron执

2009-02-26 11:13:41

Weblogic中间件JSP

2011-03-18 18:47:34

QtMySQL

2009-06-30 14:02:00

Struts乱码Eclipse

2009-08-14 13:49:58

Rails中文问题

2012-05-09 10:08:41

跨机房

2011-01-21 14:13:10

点赞
收藏

51CTO技术栈公众号