zoukankan      html  css  js  c++  java
  • mysql存储emoji问题

    前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了

    emoji符号实际上是文本,并不是图片,它们仅仅显示为图片

    在mysql5.5.3或更高的版本才支持

    确定数据库支持存储表情后,可以修改数据库的默认编码,这样以后再建数据库的话,就不用考虑存emoji这个问题了

    在mysql 的配置文件 my.cnf 或 my.ini 配置文件中修改如下:

    [client]
    default-character-set = utf8mb4
    
    [mysqld]
    character-set-server = utf8mb4
    collation-server     = utf8mb4_general_ci

    重启MySQL,然后使用以下命令查看编码,应该全部为utf8mb4(character_set_filesystem和character_set_system除外):

    mysql> show variables like '%char%';
    +--------------------------+--------------------------+
    | Variable_name            | Value                    |
    +--------------------------+--------------------------+
    | character_set_client     | utf8mb4                  |
    | character_set_connection | utf8mb4                  |
    | character_set_database   | utf8mb4                  |
    | character_set_filesystem | binary                   |
    | character_set_results    | utf8mb4                  |
    | character_set_server     | utf8mb4                  |
    | character_set_system     | utf8                     |
    | character_sets_dir       | /usr/local/mysql-5.7.... |
    +--------------------------+--------------------------+
    8 rows in set (0.00 sec)

    使用命令查看collation设置,应该全部是utf8mb4_general_ci

    mysql> show variables like '%coll%';
    +----------------------+--------------------+
    | Variable_name        | Value              |
    +----------------------+--------------------+
    | collation_connection | utf8mb4_general_ci |
    | collation_database   | utf8mb4_general_ci |
    | collation_server     | utf8mb4_general_ci |
    +----------------------+--------------------+
    3 rows in set (0.01 sec)

    如果character_set_database还是为utf8,需要重启服务器。

    现在,MySQL就可以正确存储emoji字符了。

    但是如果是之前已经建好的数据库怎么办呢?

    可以使用 mysql命令

     ALTER TABLE 表名 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; 

    来更改已有的数据库表的编码

    参考地址:https://www.liaoxuefeng.com/article/00145803336427519ae82a6c5b5474682c0c4ba5b47fb33000

  • 相关阅读:
    HTML DOM教程 49JavaScript Number 对象
    jquery技巧总结
    eclipse常用快捷键汇总
    一个Hibernate 的简单教程
    HTML DOM教程 51JavaScript match() 方法
    Java开源项目Hibernate包作用详解
    Build system 英文说明 Andrlid.mk说明
    android通过 哪些变量 来决定 哪些应用 会被编译进系统
    android“设置”里的版本号
    android设置中PreferenceActivity的 小结
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/7586638.html
Copyright © 2011-2022 走看看