当连接到远程数据库并获取编码配置时,得到: 在 Windows 命令行中:
mysql> show variables like 'char%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | cp1251 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
但在工作台中:
character_set_client, utf8
character_set_connection, utf8
character_set_database, latin1
character_set_filesystem, binary
character_set_results, utf8
character_set_server, latin1
character_set_system, utf8
character_sets_dir, /usr/local/mysql/share/charsets/
我认为工作台有自己的配置文件,但我找不到它。如果我错了,问题出在哪里?
最佳答案
尚不完全清楚您的问题是什么,但我假设您想知道为什么某些字符集与命令行客户端和 MySQL Workbench 相比有所不同。
如果您仔细观察,您会发现唯一的差异是影响客户端的差异(结果集、客户端 + 连接字符集)。所以,很明显这些是由客户端配置的。他们根据需要配置这些值。关于你的(隐含的)问题就这么多。
关于为什么 MySQL Workbench 选择 utf8 并且无法更改的一句话:始终使用 Unicode 编码可确保尽可能少的转换问题。如果表中的文本使用连接或结果集使用的任何其他编码,则必须在这些编码之间进行转换。在不丢失信息的情况下,这通常是不可能的。通过在所有相关地方使用 utf8,我们可以最大限度地降低这种风险。
关于mysql - MySQL 和 Workbench 中的不同配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23734594/