首頁 > 軟體

MySQL 中字元集詳細介紹

2022-08-26 14:04:56

MySQL 中的 UTF8

在 MySQL 中, utf8 編碼格式有點特殊, 它不是我們通常用到的 utf8, 而是 utf8mb3 編碼的縮寫. 而 utf8mb4 才是我們常說的那個 utf8.

  • utf8mb3:閹割過的 utf8 字元集, 只使用 1~3 個位元組表示字元.
  • utf8mb4:正宗的 utf8 字元集, 使用 1~4 個位元組表示字元.

通常情況下, utf8mb3 和 utf8mb4 的使用區別不大, 但是如果有使用 4 位元組編碼一個字元的情況, 比如儲存一些 emoji 表情, 那就必須使用 utf8mb4 編碼.

修改MySQL資料庫的編碼

當我們 MySQL 資料庫的編碼已經是UTF8 時, 此時需要對某個表的某個欄位支援插入emoji 表情,前面說過 emoji 表情需要 utf8mb4 才支援。所以此時就需要修改 MySQL 的編碼。

注意:utf8mb4 字元集要求 MySQL 資料庫版本 >=5.5.3

修改的步驟如下:

1.修改 mysql 組態檔,設定其編碼格式,新增或修改如下程式碼:

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
character-set-client-handshake = false
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4

2.修改資料庫字元集編碼

-- 設定指定資料庫的字元集編碼,xxx 為資料庫名稱
ALTER DATABASE xxx CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.修改資料表字元集編碼

-- 設定指定資料表的字元集編碼
ALTER TABLE xxx.yyy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

4.檢測是否修改成功

SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';

5.插入一個emoji表情來測試下:

UPDATE yyy SET comments = '測試表情

IT145.com E-mail:sddin#qq.com