要设置 MySQL 数据库表和字段的编码方式为 UTF-8,可以使用下面的SQL语句:
1. 设置数据库默认编码为 UTF-8:
sql
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2. 创建表时指定编码为 UTF-8:
sql
CREATE TABLE your_table_name (
column1 VARCHAR(100) CHARACTER SET utf8mb4,
column2 TEXT CHARACTER SET utf8mb4,
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
3. 修改已存在表的编码方式为 UTF-8:
sql
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4. 修改表中字段的编码方式为 UTF-8:
sql
ALTER TABLE your_table_name MODIFY column_name VARCHAR(100) CHARACTER SET utf8mb4;
your_database_name: 数据库名
your_table_name: 表名
column_name: 字段名。
这些语句将确保数据库、表和字段的编码方式都设置为 UTF-8。
5. 编码集推荐:
一般推荐选择以下几种常用的字符编码集:按需求进行选择
-
utf8mb4: 如果需要支持包括 emoji 在内的所有 Unicode 字符,或者需要存储多语言文本,可以选择 utf8mb4 编码。
-
utf8: 如果不需要存储 emoji 或者特殊的 Unicode 字符,但仍然需要支持多语言文本,可以选择 utf8 编码。需要注意的是,在 MySQL 8.0 及以上版本,utf8 默认使用了 utf8mb4 的字符集,因此实际上建议直接使用 utf8mb4。
-
latin1: 如果只需要存储西欧语言的文本,且对存储空间有较高要求,可以选择 latin1 编码。不过需要注意,latin1 编码不支持 Unicode 字符。