ITKeyword,专注技术干货聚合推荐

注册 | 登录

Incorrect string value异常——MySQL编码细说

itPublisher 分享于 2012-12-23

推荐:MySQL的ERROR 1366 (HY000): Incorrect string value错误解决

转载请标明出处: http://blog.csdn.net/ouyida3/article/details/46632215 本文出自:【ouyida3的博客】 错误描述: MySQL [portaldb]> INSERT INTO prod_produc

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

异常由来: 我们使用MySQL数据库utf8编码进入数据存储。

最近游戏接入到腾讯平台,因而通过接口获取其平台上的用户数据,发现取过来的用户名可谓五花八门,各种符号应有尽有。 导致入库时,出现Incorrect string value异常。

经过查阅得知: MySQL中utf8编码默认为utf8mb3,既每字符最大占用3字节存储空间。 然而众多用户名中出现4字节字符,导致MySQL无法存储,因而抛出异常。

解决方案: 因utf8mb3无法支持4字节字符,因而只需要将对应字段编码更改为能支持4字节的编码(utf8mb4、utf16、utf32任意一种)即可。 因utf8mb4占用空间少,所以为最优选择。

utf8(utf8mb3)、utf8mb4、utf16、utf32的区别: utf8(utf8mb3):使用1~3字节的空间对字符编码,就是字符是几字节就用几字节空间,但最大只能存储3字节。 utf8mb4:使用1~4字节的空间对字符编码,就是字符是几字节就用几字节空间,可以存储任意字符(因为不管何种字符,最大也就4字节)。 utf16:uses 2 bytes for the first 65,536 codepoints,and 4 bytes for everything else.可以理解为某些字符使用2字节,其他的使用4字节。 utf32:使用固定4个字节的空间对任意字符编码。

额外信息: MySQL 5.5数据库之前的版本只支持ucs2和utf8两种Unicode字符集,即只支持Unicode 3.0的标准。 MySQL 5.5版本对于Unicode标准已经支持到5.0。共支持ucs2、utf8(utf8mb3)、utf8mb4、utf16,以及utf32五种Unicode编码。

推荐:关于mysql数据库“Incorrect string value: '\xFF\xFE\x0DNSb...' for column 'note' at row 1”错误

或许很多人能和我一样在使用mysql数据库时会遇到这样的问题,无法显示中文字符,而且无法无法被加载进数据库。 这就是程序员都会遇到的字符编码问题,接下来以JA

异常由来: 我们使用MySQL数据库utf8编码进入数据存储。  最近游戏接入到腾讯平台,因而通过接口获取其平台上的用户数据,发现取过来的用户名可谓五花八门,各种符号应有尽有。 导致入库时,出

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。