emoji存入mysql

编程入门 行业动态 更新时间:2024-10-07 00:26:18

<a href=https://www.elefans.com/category/jswz/34/1759630.html style=emoji存入mysql"/>

emoji存入mysql

对于没有把表情等特殊字符考虑在内的系统,当向数据库写入emoji时,数据库就会报错,如下所示:

数据库写入emoji时报错

原因

emoji表情为4个字符,而一般Mysql的utf8编码最多3个字节,所以插入时就会报错。

解决方案

前端解决方案

作为一个前端,自己能解决的,绝不麻烦后端同学。在前端,将emoji字符先使用encodeURIComponent进行转义,写入数据库,然后读取显示时,再使用decodeURIComponent进行解码。

更改数据库编码格式

将Mysql的编码从utf8转换成utf8mb4。

从 MySQL 5.5.3 开始,MySQL 支持一种 utf8mb4 的字符集,这个字符集能够支持 4 字节的 UTF8 编码的字符。 utf8mb4 字符集能够完美地向下兼容 utf8 字符串。在数据存储方面,当一个普通中文字符存入数据库时仍然占用 3 个字节,在存入一个 Unified Emoji 表情的时候,它会自动占用 4 个字节。所以在输入输出时都不会存在乱码的问题了。

要使用 MySQL 的这个特性,首先需要把 MySQL 升级到 5.5.3 以上的版本。

其次,需要修改数据结构中的字符集为 utf8mb4 ,如 utf8mb4_general_ci 。由于 utf8mb4 是 utf8 的超集,从 utf8 升级到 utf8mb4 不会有任何问题,直接升级即可;如果从别的字符集如 gb2312 或者 gbk 转化而来,一定要先备份数据库。

然后,修改 MySQL 的配置文件 /etc/myf,修改连接默认字符集为 utf8mb4 ,如果是自己写的 PHP 脚本,也可以在连接数据库以后首先执行一句 SQL: SET NAMES utf8mb4;。这时候,PHP 应该就可以正常保存 Emoji 到数据库了。

对于数据库配置不是很懂,以上摘抄自博文emoji写入数据库报错处理的方法

参考

更多推荐

emoji存入mysql

本文发布于:2024-02-13 20:37:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760538.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:emoji   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!