我有一个表 'ABC' (charset = utf8),这些是我的字符集变量值
[mysql 版本 4.1.23 - 服务器] 和客户端版本 - 3.23.57
mysql> show variables like 'character%';
+--------------------------+------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /home/y/share/mysql/charsets/ | +--------------------------+------------------------------------+ 7 rows in set (0.00 sec)
现在如果我在 mysql 客户端中运行查询
mysql>select * into outfile '/tmp/a' from ABC; Query OK, 26 rows affected (0.00 sec)
检查/tmp/a的文件类型
[satyavrk-~]$: file /tmp/a /tmp/a:UTF-8 Unicode text
Q1)由于我的 character_set_results 是 latin1 ,/tmp/a 的文件类型是 UTF-8 而不是 latin1 或 ISO-8859 英文文本?
或者如果我运行
[satyavrk-~]$: mysqldump -uroot --databases my --tables ABC --default-character-set=utf8 > 63794
做
[satyavrk-~]$: file 63794 63794: ISO-8859 English text, with very long lines
Q2)由于我将 --default-character-set 指定为 UTF-8,因此结果集应该是 utf8。但事实并非如此!为什么?
在这两种情况下,文件类型都与预期的不同
谁能解释一下我想念的点
最佳答案
SET NAMES
很方便,可能正是您所需要的。
关于mysql - 为什么 mysql 4 不遵守 --character_set_results 和 --default-character-set 命令参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6504391/