当尝试将MySQL表从缺省的不区分大小写的swedish或ascii字符集迁移到utf-8时,有没有人有任何提示或窍门时刻要注意?我参与的一些项目正在努力实现更好的国际化,数据库将成为这一变化的重要组成部分。MySQL UTF/Unicode迁移技巧
在我们改变数据库之前,我们要将每个站点转换为使用UTF-8字符编码(从最不重要到最多),以确保所有输入/输出使用相同的字符集。
感谢所有帮助
当尝试将MySQL表从缺省的不区分大小写的swedish或ascii字符集迁移到utf-8时,有没有人有任何提示或窍门时刻要注意?我参与的一些项目正在努力实现更好的国际化,数据库将成为这一变化的重要组成部分。MySQL UTF/Unicode迁移技巧
在我们改变数据库之前,我们要将每个站点转换为使用UTF-8字符编码(从最不重要到最多),以确保所有输入/输出使用相同的字符集。
感谢所有帮助
一些提示:
CHAR
和VARCHAR
列将最多使用3次以上的磁盘空间。 (您可能不会为瑞典语单词获得太多磁盘空间。)SET NAMES utf8
。如果你不这样做,你会得到部分乱码的字符。我将要渡过了以下网站/物品,以帮助找到答案。
Hanselminutes episode "Sorting out Internationalization with Michael Kaplan"
而且我也只是发现了一个很话题上通过后德雷克·锡弗斯@奥赖利ONLamp博客,因为我在写这一点。 Turning MySQL data in latin1 to utf8 utf-8
你
CHAR
和VARCHAR
列将最多使用3次以上的磁盘空间。
只有当它们塞满了latin-1且序号> 128时。否则,增加的UTF-8空间使用量是最小的。
整理不总是有利的。您将得到与非修正版本相对应的清单,但这并不总是正确的。可能要去w/utf8_bin,但所有内容都区分大小写。
请注意索引长度限制。如果一个表的结构,说:
一个varchar(255) b为varchar(255) 键( 'A', 'B')
你会走过去的1000字节的限制上密钥长度。 255 + 255没问题,但255 * 3 + 255 * 3是不行的。