zhihuifan

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

实际开发遇到的问题:

往Mysql数据表中存储一些繁体字,emoji表情😲😳图时提示插入失败。

解决方法:

更改数据库编码、系统编码以及表字段的编码格式,把 utf8 改成 utf8mb4

原因分析:

MySQL 的 utf8 实际上不是真正的 UTF-8

在MySQL中,utf8 编码只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。

所以,在mysql数据库中,用utf8编码存储数据,大多数情况没有问题,因为中文是占3个字节,其他数字、英文、符号各占一个字节。

但是emoji符号占4个字节,一些较复杂的文字、繁体字也是4个字节。

因此,4字节的内容往utf8编码中插入,肯定是不行的,最终会导致写入失败,应该改成utf8mb4。

 

原文链接:

https://mp.weixin.qq.com/s?__biz=Mzg2MjEwMjI1Mg==&mid=2247498844&idx=2&sn=0847b6f7d97de43503bf654790d7cd8a&chksm=ce0e4bdff979c2c96e27b60576d6b93cf105263677ae3c3086e568a17c3a8f80a268f630ade7&mpshare=1&scene=1&srcid=0814XACTjn3F9qnB8osmh3mI&sharer_sharetime=1597373840656&sharer_shareid=f0989b28ebe93dacefcd51cd33e1773c&key=83512e9d09452b03b57ccf2d7e6efff2d97b4ef0aba6258d7f1b5e02ad5c7194eab9db01567f5a76724698b532cc2d6d4ebbcef7672dff0ec5ae22d9d6026c29bd9524647fe4b07aed776ce25f8f1eef72ec8f1a85ded3a27b7fde1dfde37cfc42238705600a2759bd11bf67052eacaa71ed112dfc286c3043afb6f5f7166411&ascene=1&uin=MzI3MDU5Mjcx&devicetype=Windows+10+x64&version=62090538&lang=en&exportkey=AfGqgdoVDd6oNOE%2Fs1MDUhA%3D&pass_ticket=bzdUOO7cmqE2QbYLhzeySDjCBZrlfZ%2Fipn7UCBnDld5vfuWtp1sa8Vc1G3g4k8Ng

 

声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,转载请指明出处!

 

 

posted on 2020-08-14 10:59  Hi,ZHF  阅读(367)  评论(0编辑  收藏  举报