如何让MySQL支持CJK编码

背景知识:

CJK:中日韩统一表意文字(CJK Unified Ideographs)(CJK不是苍井空老湿名字的缩写而是中日韩的缩写:China、Japan、Korea),目的是要把分别来自中文、日文、韩文、越文中,本质、意义相同、形状一样或稍异的表意文字(主要为汉字,但也有仿汉字如日本国字、韩国独有汉字、越南的喃字)于ISO 10646及Unicode标准内赋予相同编码。

一些比较复杂的异性字,比如:古书中出现的一些生僻字等就包括在这个字符集中。

例如这个字:

正在做的一个项目是关于历史古籍的,数据中大量出现这种字,所以研究了一下如何让MySQL支持这种CJK,经验记录如下:

1 MySQL从5.5.3开始支持utf8mb4编码,这种编码用4个字节表示一个字,所以容量更大,MySQL5.5.3之前的版本就甭尝试了,不是乱码就是问号(MySQL的官方说明如下:http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html)。(通过编译方式升级MySQL的方法,目前也只能自己编译MySQL,因为yum软件库中最新的MySQL仍是5.1.x)

2 建表时为字段指定字符集:

`title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,

上面就是一个例子:一个长度为100的varchar的title字段,字符集是utf8mb4。

3 程序(PHP等)在建立链接时需要指定字符集

mysql_query("SET NAMES 'utf8mb4'", $connect);
 评论
  博客要是能加處網址就好了
 发表评论
姓   名: