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. 再谈Msxml2.XMLHTTP、Msxml2.ServerXMLHTTP与缓存
  2. 再谈CreateObject函数,VBS到底能调用哪些对象?
  3. VBS中CreateObject和WScript.CreateObject的区别
  4. OpenWrt中的Hotplug脚本
  5. VeryPDF PDF2Word v3.1 注册码

留下回复