带您学习DB2字符集和MySql字符集

DB2字符集相信大家都有一定的认识,那么,DB2字符集对于DB2数据库来说,重要性在哪里呢?下面以MySql和DB2为例,解释一下数据库的字符集。

创建数据库时或建表时有默认的字符集,

MySql中Sql代码

 
 
 
  1. CREATE TABLE fuck (   
  2. id varchar(225) DEFAULT NULL  
  3. ENGINE=InnoDB DEFAULT CHARSET=utf8 
 
 
 
  1. CREATE TABLE fuck (  
  2.   id varchar(225) DEFAULT NULL  
  3. ENGINE=InnoDB DEFAULT CHARSET=utf8 

DB2中Sql代码

 
 
 
  1. create database ktzpdbusing codeset UTF8 territory cn  
  2. create database ktzpdb  using codeset UTF8 territory cn  

这样就把数据库或每张表的字符编码设为utf8了,当我们直接用mysql或db2自带的命令窗口去插入中文时,却不能插入,这就是命令窗口的编码问题了。

一般命令窗口的字符编码应该为gbk,这样我们才能正常的插入和显示。如Mysql中可以用配置文件my.ini制定gbk,也可以在窗口中打set names gbk;

DB2中在命令窗口中打 db2set DB2CODEPAGE=1386。当我们敲中文插数据进去时,实际上表数据就是以utf8存储的,而在命令窗口下由于设置成了gbk,我们就能正常看到中文了。

当用mysql中 source d:/insertData.sql或用db2中的db2 -tf d:/**.sql 这种执行sql文件的命令时,该sql必须和当前命令窗口的字符编码一致,就是上述的gbk,可用记事本另存为ANSI即行。如果sql编码不一致,如是utf8,那么客户端的gbk不能识别文件中的utf8编码格式,是不能存储中文或其他非英文字符的。

总之,如果用了自带的命令窗口,MySql的导入文件的编码必须和命令窗口的字符编码一致,否则里面的数据中的中文字符等无法正常识别,而DB2的命令窗口一般还是设成1386,即GBK就行,文件也是ANSI格式的,不会出错!

 

 

 

【编辑推荐】

同表内记录间的DB2更新语句

DB2日期时间型数据类型介绍

六类常见的DB2命令行

DB2数据导入的四点注意事项

DB2管理页大小的限制

 

THE END