MySQL:为什么要使用UTF-8

Dev*_*xon 2 mysql sql utf-8

这是一个提供信息的问题而不是如何.我在MySQL中创建了一个默认编码设置为UTF-8的数据库.现在一些主键是VARCHAR,它使主键超过1000位限制,因为每个使用utf-8的char是3个字节.每个密钥是255个字符,它将密钥带到1,530字节.

因此,如果我要将编码更改为Latin-1,则主键将低于1000字节并且像魔术一样,解决方案将起作用.但是使用UTF-8有什么好处呢?它为何如此受欢迎?

Wil*_*and 11

首先; 似乎存在一两种误解:

第一; UTF-8仅对需要此字符的字符使用多个字节; 这是一个VBR编码.

第二; 255乘以3不是1530; 它只有一半.

第三; 同时请记住,我本身并不是一个真正的数据库专家; VARCHAR主键听起来是一个非常糟糕的主意.

UTF-8受欢迎的原因; 正如@Tomas Kohl所说; 是它可以代表任何Unicode字符; 但仍允许以单字节表示ASCII(U + 127和down).

如果您有任何国际野心无论如何 ; 永远不要使用UTF-8(或简称N'DUUH!); 或者你后悔的.

很难.

  • `永远不要使用UTF-8`.我喜欢它 ;) (3认同)
  • 关于GUID的文章:http://savvyduck.blogspot.com/2009/01/guids-as-primary-keys-or-how-to-walk.html (2认同)

Tom*_*ohl 8

UTF-8很受欢迎,因为它为处理非英文字符带来了理智.它支持各种非英语字母表,如阿拉伯语或中文.如果您的应用程序有志于本地化为其他语言,UTF-8肯定会为您节省许多麻烦.只需搜索"字符编码",您就会看到其中有多少.

除此之外,我建议您尽可能缩短主键(理想情况下是数字),以提高性能.