
# 如何确保TaurusDB标准版数据库字符集正确
TaurusDB标准版的"utf8"只支持每个字符最多三个字节，而真正的UTF-8是每个字符最多四个字节。包括Emoji表情（Emoji是一种特殊的Unicode编码，常见于手机上），和很多不常用的汉字，以及任何新增的Unicode字符等都无法使用MySQL的utf8字符集存储。在2010年MySQL发布了"utf8mb4"的字符集。MySQL在5.5.3之后增加了utf8mb4的编码，兼容四字节的unicode。utf8mb4是utf8的超集，除了将编码改为utf8mb4外不需要做其他转换。
#### 操作步骤
1. 登录TaurusDB标准版实例。
2. 执行如下SQL查看数据库字符集。 
   **show variables like '%character%';**
   
   
3. 执行如下SQL查看数据库的编码。 
   **show variables like 'collation%';**
   
   
4. 修改字符集为utf8mb4。 
   1. 执行如下SQL更改数据库字符集。 **ALTER DATABASE *DATABASE_NAME*DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;**
      
   
   2. 执行如下SQL更改表字符集。
      **ALTER TABLE *TABLE_NAME*DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;**
      ![](https://support.huaweicloud.com/taurusdb-std_faq/public_sys-resources/note_3.0-zh-cn.png)
      SQL语句修改的是表的字符集，表里面字段的字符集并没有被修改。
      
   
   3. 执行如下SQL更改表中所有字段的字符集。 **ALTER TABLE *TABLE_NAME*CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;**
      
   
   
   ![](https://support.huaweicloud.com/taurusdb-std_faq/public_sys-resources/note_3.0-zh-cn.png)
   - **character_set_client** 、**character_set_connection** 以及**character_set_results**是客户端的设置。
   
   - **character_set_system** 、**character_set_server** 以及**character_set_database**是服务器端的设置。
   
   - 服务器端的参数优先级是：**character_set_database\>character_set_server\>character_set_system**。
    
   
   
 
