使用UTF8进行MySQL命令行格式化

我有一个包含瑞典语/挪威语字符串的数据库表。

查询某些数据时,将得到如下输出:

回答:

+-----------------------------------+

| name |

+-----------------------------------+

| Kid Interi##### |

| Bwg Homes |

| If Skadef####kring |

| Jangaard Export |

| Nordisk Film |

+-----------------------------------+

现在,如果我set names utf8;为了查看具有正确编码的字符,则MySQL命令行的表格输出格式将中断。

回答:

+-----------------------------------+

| name |

+-----------------------------------+

| Kid Interiør |

| Bwg Homes |

| If Skadeförsäkring |

| Jangaard Export |

| Nordisk Film |

+-----------------------------------+

回答:

这不是一个大问题,但会使输出更难阅读。有人知道如何保持表格格式完整吗?

回答:

简短答案

使用以下选项启动客户端--default-character-set=utf8

mysql --default-character-set=utf8

您可以在/etc/mysql/my.cnf文件中将此设置为默认值。

[mysql]

default-character-set=utf8

简短的答案不起作用,请看下面的波纹管

上述部队的命令character_set_clientcharacter_set_connectioncharacter_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)在一列中编写了Unicode字符。在这种情况下,您需要使用与写入值相同的字符集连接到数据库。您还可以通过正确的编码检索和重写它们。

:正如评论所指出的那样,myslq

utf8编码不是UTF-8的真实完整的实现。如果需要完整实现UTF-8,则可以使用utf8mb4字符集:

mysql --default-character-set=utf8mb4

此处的更多信息:MySQL中utf8mb4和utf8字符集有什么区别?

以上是 使用UTF8进行MySQL命令行格式化 的全部内容, 来源链接: utcz.com/qa/425093.html

回到顶部