1、查看 MySQL 数据库服务器和数据库字符集 show variables like '%char%'; 2、查看当前安装的 MySQL 所支持的字符集。 show charset; 3、设置编码:
修改my.cnf 保存,重启mysql即可;
或者用mysql命令修改编码
通过MySQL命令行修改: set character_set_connection=utf8; set character_set_database=utf8; set character_set_results=utf8; set character_set_server=utf8; set character_set_system=utf8; set collation_connection=utf8; set collation_database=utf8; set collation_server=utf8;
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
SHOW CREATE DATABASE db_name;
SHOW CREATE TABLE tbl_name; SHOW FULL COLUMNS FROM tbl_name;
1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection; 2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下: • 使用每个数据字段的CHARACTER SET设定值; • 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准); • 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值; • 若上述值不存在,则使用character_set_server设定值。 3. 将操作结果从内部操作字符集转换为character_set_results。
• my.cnf中的default_character_set设置只影响mysql命令连接服务器时的连接字符集,不会对使用libmysqlclient库的应用程序产生任何作用! • 对字段进行的SQL函数操作通常都是以内部操作字符集进行的,不受连接字符集设置的影响。 |