mysql - 为什么 mysql 4 不遵守 --character_set_results 和 --default-character-set 命令参数?

标签 mysql unicode utf-8

我有一个表 '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/

相关文章:

php - 是否可以在 Lumen(by Laravel) 中使用西里尔符号?

c++ - UTF16(例如 wide-winapi 函数所使用的)字符是否总是 2 个字节长?

php - PDO MySQL UTF-8 : Data read from database not showing correctly

MySQL:有没有办法从结果中消除重复的条目

mysql - 是否可以对查询的输出进行透视?

import - 使用终端添加新数据库 mysql 客户端

Python unicode 转义下划线和双引号

Python MySQLdb - 在查询中使用 '%' 的类型错误

python - 在 python 中读取一个 unicode 文件,它以与 python 源代码相同的方式声明其编码

Java Windows UTF-8 (unicode) 打印