使用iconv解决Ubuntu命令行乱码问题

从Windows操作系统切换到Ubuntu的朋友会发现,Ubuntu中文显示经常会出现乱码的情况。乱码出现的情况有很多,常见的原因包括系统locale设置错误,系统中文字体缺失等。今天我想介绍的一种乱码情况,乱码原因并不是太常见。

有些从Windows移植到Ubuntu的软件,其输出还保留了Windows下的编码方式,比如GBK 编码,而 Ubuntu 22.04 默认使用 UTF-8 编码,导致解码失败,命令行输出为乱码。具体来说,我今天在Ubuntu 22.04 上使用datacollectforlinux-v1.2.6 这个特定的看穿式监管采集工具时出现了乱码的问题。

针对这种情况,可以使用iconv命令来解决,具体命令如下:

./datacollectforlinux-v1.2.6 2>&1 | iconv -f GBK -t UTF-8
  • 解释:datacollectforlinux-v1.2.6是输出有问题的软件,2>&1 是将错误输出也重定向到标准输出,iconv -f GBK -t UTF-8 表示假设输入是 GBK 编码,将其转换为 UTF-8 显示。
  • 注意:如果提示 iconv 命令不存在,请先运行 sudo apt install iconv

如果上面的命令无效,尝试假设它是 GB18030 编码(GBK 的超集),或其他你认为可能的编码:

./datacollectforlinux-v1.2.6 2>&1 | iconv -f GB18030 -t UTF-8

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部