当前位置: 首页 > 面试题库 >

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

宇文元明
2023-03-14
问题内容

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

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

输出与 set names latin1;

+-----------------------------------+
| name                              |
+-----------------------------------+
| Kid Interi#####                   | 
| Bwg Homes                         | 
| If Skadef####kring                | 
| Jangaard Export                   | 
| Nordisk Film                      | 
+-----------------------------------+

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

输出与 set names utf8;

+-----------------------------------+
| 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字符集有什么区别?



 类似资料:
  • gdb的帮助信息和在线文档对于长选项的形式使用了不同的风格。你可能有点迷惑,gdb的长选项究竟应该是“-”,还是“--”? 是的,这两种方式都可以。例如: $ gdb -help $ gdb --help $ gdb -args ./a.out a b c $ gdb --args ./a.out a b c 好吧,使用短的。

  • 问题内容: 您好,我正在尝试从mysql命令行客户端进行备份。我正在使用mysqldump使用用户名和密码进行备份。以下是我用于备份数据库的命令。 我收到以下错误 尽管该命令似乎是正确的,但仍然出现错误。请让我知道是否还有其他方法可以从mysql命令行进行备份。 提前致谢。 问题答案: 不是MySQL命令,而是命令行实用程序。您必须从Shell命令行调用它。

  • 使用命令行 CasperJS附带了位于cli模块中的PhantomJS解析器之上的内置命令行解析器。它将传递的参数公开为位置和命名选项。 Casper实例总是包含一个可以使用的cli属性来方便访问这些参数,因此您不用担心操作cli模块解析API。 我们来看看这个简单的casper脚本: var casper = require("casper").create(); casper.echo("C

  • 我们可以用Gradle命令来执行特定的任务,运行一个任务需要你知道该任务的名称,如果Gradle能够告诉你有哪些任务可以执行那岂不是很棒?Gradle提供了一个辅助的任务tasks来检查你的构建脚本,然后显示所有的任务,包含一个描述性的消息。 $ gradle -q tasks 输出如下: All tasks runnable from root project Build Setup task

  • 本文向大家介绍MySQL命令行下18个常用命令,包括了MySQL命令行下18个常用命令的使用技巧和注意事项,需要的朋友参考一下 在日常的网站维护和管理中,会用到非常多的SQL语句, 熟练使用对网站管理有很多好处,尤其是站群管理的时候。 下面列一些常用的命令做备记。 1、显示数据库 show databases 显示表 show tables;  2、创建用户 创建root用户密码为123  3、修

  • 我正在尝试使用sqlite3命令,按照本SO答案给出的方式执行https://stackoverflow.com/a/25684912/426853. 以下操作始终在命令行中起作用: 我将其编码为Go,如下所示: 我有一个测试文件,像这样调用它: 测试报告了来自sqlite3的语法错误。 我怀疑问题出在将参数传递给shell,问题在于调用。我试着把它改成 但结果是一样的。我还尝试将放在命令前面,即