2012-11-05 115 views

回答

3

首先,您链接的文章谈论了作者使用mysql作为数据库开发iOS应用程序的经验。在mysql中,编码“utf8”仅代表长度为1,2或3个字节的字符。

但是,utf8根据定义支持1,2,3或4个字节的长字符。因此,在mysql编码和归类的上下文中,utf8表示只能达到3个字节的字符。对于4字节的长字符,mysql已经设计了utf8mb4编码。

但是,这仅适用于mysql上下文。在MySQL世界之外,utf8自动意味着支持1,2,3或4个字节的字符。看到UTF-8 wikipedia page,它在介绍段落中谈到这样的:

UTF-8编码的每个以Unicode 字符1112064 [7]的代码点的使用一个设置为4个8位字节(称作“个八比特组“在Unicode标准中为 )。

因此,当平台或软件应用程序声称支持UTF-8时,它意味着支持所有可以消耗1,2,3或4个字节的1,112,064个代码点。

mysql的情况是utf8编码不是真的100%utf8但只有utf-8的6%(但大多数人不会注意到,除非他们开始使用emojis或其他字符)的异常。

所以我的建议是,假设谷歌应用引擎在接受utf-8作为他们支持的有效编码时支持4字节字符是安全的。

+0

感谢您的好解释! –

+0

很好的回答! – user2924127

相关问题