简短答案
使用以下选项启动客户端
--default-character-set=utf8:
mysql --default-character-set=utf8
您可以在
/etc/mysql/my.cnf文件中将此设置为默认值。
[mysql]default-character-set=utf8
简短的答案不起作用,请看下面的波纹管
上述部队的命令
character_set_client,
character_set_connection并
character_set_results配置变量是
utf8。
为了检查所有与字符集相关的配置变量的值,可以运行:
show variables like '%char%';
该
character_set_database给你的字符集当前数据库(模式)的,你是在该模式和表默认创建在指定的字符集
character_set_server,除非是在明确指定
CREATE的语句。
本
character_set_server可以在中更改
my.cnf文件:
[mysqld]character-set-server = utf8
此外,表和列可以具有自己的字符集,这可能与其父表或架构不同。要专门检查数据库中每个表和列的值,请参见以下答案:
如何查看MySQL数据库/表/列的字符集?
如果要更改现有表和列的字符集,请参见以下答案:如何将整个MySQL数据库字符集和排序规则转换为UTF-8?
有关连接字符集的更多信息,请参见mysql文档。
一切都设置为utf8,但我仍然看到奇怪的字符
即使所有字符集变量,表和列都设置为
utf8,在某些情况下,您仍可能在屏幕上看到奇怪的字符。例如,有人可能
utf8通过具有
latin1连接的客户端(例如,通过运行
mysql--default-character-set=utf8)在一列中编写了Unipre字符。在这种情况下,您需要使用与写入值相同的字符集连接到数据库。您还可以通过正确的编码检索和重写它们。
注意 :正如评论所指出的那样,myslq
utf8编码不是UTF-8的真实完整的实现。如果需要完整实现UTF-8,则可以使用
utf8mb4字符集:
mysql --default-character-set=utf8mb4
此处的更多信息:MySQL中utf8mb4和utf8字符集有什么区别?



