当尝试将MySQL表从默认的不区分大小写的瑞典语或ascii字符集迁移到utf-8时,是否有任何人有任何提示或难以理解的时刻?我参与的一些项目正在努力实现更好的国际化,数据库将成为这一变化的重要组成部分。
在我们想要改变数据库之前,我们将转换每个站点以使用UTF-8字符编码(从最不重要到大多数)来帮助确保所有输入/输出使用相同的字符集。
感谢您的帮助
答案 0 :(得分:2)
一些提示:
CHAR
和VARCHAR
列最多可使用3倍的磁盘空间。 (瑞典语单词可能不会增加太多的磁盘空间。)SET NAMES utf8
。如果你不这样做,你会得到部分乱码。答案 1 :(得分:1)
我将访问以下网站/文章以帮助找到答案。
Hanselminutes episode "Sorting out Internationalization with Michael Kaplan"
我还在Derek Sivers @ O'Reilly ONLamp博客上发表了一篇非常关于主题的帖子,因为我正在写这篇文章。 Turning MySQL data in latin1 to utf8 utf-8
答案 2 :(得分:1)
注意索引长度限制。如果表格是结构化的,请说:
一个varchar(255) b varchar(255) 键('a','b')
你将超过密钥长度的1000字节限制。 255 + 255没问题,但255 * 3 + 255 * 3不起作用。
答案 3 :(得分:0)
您的
CHAR
和VARCHAR
列最多可使用3倍的磁盘空间。
只有当他们被塞满了带有序数的latin-1> 128.否则,UTF-8的空间使用增加很少。
答案 4 :(得分:0)
整理并不总是有利的。你会得到umlats整理到非umlatted版本,这并不总是正确的。可能想去w / utf8_bin,但是一切都是区分大小写的。