最近在写留言板功能,发现将emoji直接保存到mysql数据库中emoji会变成问号,原因是MySQL数据库中的 “utf8” 字符集并不完全符合 UTF-8 的标准。
尽管现在的大多数可见字符都可以在 utf8 字符集中用三个字节表示,但在 Unicode 6 系列编码中,一些字符需要四个字节,其中包括了众所周知的 emoji 表情。因此,如果数据库使用了默认的字符集设置,就无法正确地存储 emoji 表情。
如何解决MySQL存储Emoji表情
更改数据库表的字符集和编码
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
后端连接数据库的配置正确
在后端连接数据库的配置文件中,确保设置了正确的字符集和编码。确保与数据库的连接使用的字符集和编码与数据库表一致。
const connection = mysql.createConnection({
host: 'xxxxx', //主机地址,默认localhost
user: 'xxxx', //数据库账号名
password: 'xxxxx', //数据库密码
database: 'xxxxx', //连接的数据库名
charset:"utf8mb4" // 数据库字符集
});
配置OK后,emoji存储成功,再也不是一堆问号了

阅读进度 0%
private note
交流
文章暂不开放公开评论。如果你有想法、问题或建议,欢迎私下联系站长。
联系站长 →