1. 程式人生 > >MySql中存入表情

MySql中存入表情

        MySql的utf8編碼的一個字元最多3個位元組,但是一個emoji表情為4個位元組,所以utf8不支援儲存emoji表情。但是utf8的超級utf8mb4一個字元最多能有4位元組,所以能支援emoji表情的儲存。

1.修改MySql的配置檔案

         [client]

         default-character-set=utf8mb4

        [mysqld]

        character-set-client-handshake= FALSE

        character-set-server = utf8mb4

        collation-server = utf8mb4_unicode_ci

        init_connect = 'SET NAMES utf8mb4'

        [mysql]

       default-character-set=utf8mb4

2.修改database/table和column的字符集

      1》修改database的字符集

       ALTER DATABASE 資料庫名  CHARACTER SET =utf8mb4 COLLATE = utf8mb4_unicode_ci;

      2》修改table的字符集

     ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

      3》修改column的字符集

    ALTER TABLE 表名 CHANGE 欄位名 欄位名 該欄位原來的資料型別  CHARACTER SET utf8mb4 COLLATE  utf8mb4_unicode_ci;

ALTER TABLE route_comment  CHANGE content  content  TEXT  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.檢查字符集

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

4.帶有emoji表情的sql檔案的匯入與匯出

    1》匯出

     在進行把字尾名為.sql的檔案,且檔案資料中包含emoji表情的資料,進行備份匯出的時候,此時不要使用第三方軟體進行匯出,而是使用命令列的形式執行該匯出動作,其主要原因是使用第三方匯出該檔案時,由於其預設的匯出的編碼格式為UTF-8,該編碼格式最多隻支援3個位元組,而一個emoji表情有4個位元組,這將導致emoji表情的資料變成亂碼。

     一、開啟cmd,先找到mysqldump這個執行檔案所在的路徑;

    二、在路徑後輸入mysqldump -default -character -set - utf8mb4 -u 使用者名稱 -p 資料庫名 > 匯出該檔案的物理路徑

   2》匯入

    匯入的命令不需要指明編碼格式,只需要正常的執行命令即可。