使用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_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)在一列中编写了Unicode字符。在这种情况下,您需要使用与写入值相同的字符集连接到数据库。您还可以通过正确的编码检索和重写它们。
:正如评论所指出的那样,myslq
utf8
编码不是UTF-8的真实完整的实现。如果需要完整实现UTF-8,则可以使用utf8mb4
字符集:
mysql --default-character-set=utf8mb4
此处的更多信息:MySQL中utf8mb4和utf8字符集有什么区别?
以上是 使用UTF8进行MySQL命令行格式化 的全部内容, 来源链接: utcz.com/qa/425093.html