MySQL的Unicode支持

标签: , , , , ,

作为广泛使用的数据库,MySQL对Unicode有着很好的支持。

1、MySQL 6.0版之前的Unicode支持

在MySQL 6.0.4版之前,其Unicode支持仅包括Basic Multilingual Plane(BMP,基本多语言方案)里的字符,最多只有65536个字符。没有被收录到BMP方案里的其他字符是没有任何支持的。Unicode通过两种字符集提供了一个比较完善的解决方案。

  • ucs2字符集对应着Unicode USC-2编码方案。它使用两个字节来表示一个字符,高位字节排列在前,这种字符集无法表示需要用两个以上字节才能表示的字符。
  • utf8字符集采用了一种长度可变的格式,使用一到三个字节来表示一个字符,它对用着UTF-8编码方案。

2、MySQL 6.0版之后的Unicode支持

从MySQL 6.04版开始,其Unicode支持把BMP方案所遗漏的补充字符也收录了进来,这么做的效果如下。

  • usc2字符集在MySQL 6.0系列版本里未做改动,每个字符仍占两个字节。新增加的utf16和utf32字符集类似于utf8,但扩充了对补充字符的支持。在utf16字符集里,BMP仍占两个字节(和usc2字符集一样),补充字符占四个字节。在utf32字符集里,所有字符都占四个字节。
  • 以前,每个utf8字符占一到三个字节。增加了补充字符之后,每个utf8字符占一到四个字节。

随机文章:

  1. Audio Speed Changer Pro v1.5注册码
  2. 文件属性中“大小”和“占用空间”的区别
  3. VBScript编译器(VBS也疯狂)
  4. JavaScript 记忆(Memoization)
  5. FireFox插件User Agent Switcher

留下回复