将表情符号保存到MYSQL DB

时间:2019-03-17 06:37:11

标签: mysql node.js emoji unicode-string

我正在尝试将表情符号保存到我的MYSQL数据库中,我已按照以下步骤进行操作

3个步骤

  1. 将ALTER TABLE TABLE转换为字符集utf8mb4 COLLUT utf8mb4_unicode_ci; ALTER TABLE COLUMN修改注释文本字符集utf8mb4;

  2. 设置名称utf8mb4;

通过上述步骤,我可以将表情符号保存到数据库,但是过一段时间后,我又看不到表情符号,我必须执行以下命令

SET NAMES utf8mb4;

然后它起作用

使用以下语句是否必要?

SET NAMES utf8mb4;

我们不能对此进行永久性修复吗?

1 个答案:

答案 0 :(得分:2)

有时必须再次执行SET NAMES的原因是该命令仅修改当前会话的配置。

根据the documentation

  

13.7.5.3 SET NAMES语法

     

此语句将三个会话系统变量character_set_client,character_set_connection和character_set_results设置为给定的字符集。

如果要永久设置它,则需要设置在mysql服务启动时定义它,或将其添加到您的MySQL conf文件中。

签出https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html

或者(取决于您用于节点的MySQL客户端),您也许可以直接从客户端定义连接字符集。