[换帖]Linux命令之iconv命令

换帖,linux,命令,iconv · 浏览次数 : 334

小编点评

**使用说明** 1. 查看命令版本: ``` [root@s145 tmp]# iconv -V ``` 2. 获取帮助简讯: ``` [root@s145 tmp]# iconv --usage ``` 3. 查看支持的编码格式: ``` # 支持的编码格式非常多,有上千种。 [root@s145 tmp]# iconv -l ``` 4. 将 GBK 文件转换为 UTF-8 文件: ``` [root@s145 tmp]# iconv -f GBK -t UTF-8 B.csv > b.csv ``` 5. 将 UTF-8 文件转换为 GBK 文件: ``` [root@s145 tmp]# iconv -f UTF-8 -t GBK b.csv -o b.csv ``` 6. 使用语法和参数说明: ``` 1、使用语法 ``` ``` iconv [OPTION…] [FILE…] ``` **参数说明:** - `-f, --from-code=NAME`:指定输入文件编码,把字符从 `NAME` 编码开始转换。 - `-t, --to-code=NAME`:指定输出文件编码,把字符转换到 `NAME` 编码。 - `-l, --list`:列出已知的编码字符集合。 - `-c, --ignore-illegal`:忽略输出的非法字符。 - `-o, --output=FILE`:指定输出文件。 - `-s, --silent`:禁止警告信息,但不是错误信息。 - `-V, --version`:打印版本信息。

正文

一、命令简介

  日常工作中我们需要将windows生成的文件上传到Linux系统,有时候会因为编码问题出现显示乱码。例如我上传了一个csv文件到Linux服务器上,默认编码为GB2312,在Linux打开则会出现乱码,我们需要将文件进行编码转换。iconv命令对于给定文件把它的内容从一种编码转换成另一种编码。

二、使用示例

1、查看命令版本

[root@s145 tmp]# iconv -V
iconv (GNU libc) 2.17
Copyright © 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.

2、获取命令帮助

[root@s145 tmp]# iconv --help

3、获取帮助简讯

[root@s145 tmp]# iconv --usage
Usage: iconv [-lcs?V] [-f NAME] [-t NAME] [-o FILE] [–from-code=NAME]
[–to-code=NAME] [–list] [–output=FILE] [–silent] [–verbose]
[–help] [–usage] [–version] [FILE…]

4、查看支持的编码

#支持的编码格式非常多,有上千种。
[root@s145 tmp]# iconv -l
The following list contain all the coded character sets known. This does
not necessarily mean that all combinations of these names can be used for
the FROM and TO command line parameters. One coded character set can be
listed with several different names (aliases).

WINDOWS-31J, WINDOWS-874, WINDOWS-936, WINDOWS-1250, WINDOWS-1251,
WINDOWS-1252, WINDOWS-1253, WINDOWS-1254, WINDOWS-1255, WINDOWS-1256,
WINDOWS-1257, WINDOWS-1258, WINSAMI2, WS2, YU

5、将GBK文件转换为UTF-8文件

#可以使用>重定向将转换结果输入到新文件,文件名不能与原文件相同。
[root@s145 tmp]# cat B.csv
,Ա,5,6,7,8,9,ʱ
1,1,ID0025,A41,A51,A61,A71,A81,A91,2000/2/8
2,2,ID0026,A42,A52,A62,A72,A82,A92,2000/2/9
3,3,ID0027,A43,A53,A63,A73,A83,A93,2000/2/10
4,4,ID0028,A44,A54,A64,A74,A84,A94,2000/2/11
5,5,ID0029,A45,A55,A65,A75,A85,A95,2000/2/12
6,6,ID0030,A46,A56,A66,A76,A86,A96,2000/2/13
7,7,ID0031,A47,A57,A67,A77,A87,A97,2000/2/14
8,8,ID0032,A48,A58,A68,A78,A88,A98,2000/2/15
9,9,ID0033,A49,A59,A69,A79,A89,A99,2000/2/16
10,10,ID0034,A50,A60,A70,A80,A90,A100,2000/2/17
11,11,ID0035,A51,A61,A71,A81,A91,A101,2000/2/18
12,12,ID0036,A52,A62,A72,A82,A92,A102,2000/2/19
13,13,ID0037,A53,A63,A73,A83,A93,A103,2000/2/20
[root@s145 tmp]# file B.csv
B.csv: ISO-8859 text, with CRLF line terminators
[root@s145 tmp]# iconv -f GBK -t UTF-8 B.csv > b.csv
[root@s145 tmp]# cat b.csv
序号,姓名,员工编号,信息4,信息5,信息6,信息7,信息8,信息9,入职时间
1,张三1,ID0025,A41,A51,A61,A71,A81,A91,2000/2/8
2,张三2,ID0026,A42,A52,A62,A72,A82,A92,2000/2/9
3,张三3,ID0027,A43,A53,A63,A73,A83,A93,2000/2/10
4,张三4,ID0028,A44,A54,A64,A74,A84,A94,2000/2/11

在这里插入图片描述

6、将UTF-8文件转换为GBK文件

#默认输出到屏幕,使用-o可以输出到指定文件。可以使用-o将输出转换到新文件,文件名可以与原文件一致。ISO-8859对应GBK,如果-f后面使用ISO-8859会报错文件格式不支持。
[root@s145 tmp]# file b.csv
b.csv: UTF-8 Unicode text, with CRLF line terminators
[root@s145 tmp]# iconv -f UTF-8 -t GBK b.csv -o b.csv
[root@s145 tmp]# file b.csv
b.csv: ISO-8859 text, with CRLF line terminators

7、浏览网站时实时编码转换

在这里插入图片描述
在这里插入图片描述

三、使用语法及参数说明

1、使用语法

用法:iconv [OPTION…] [FILE…]

2、参数说明

参数参数说明
-f, --from-code=NAME指定输入文件编码,把字符从encoding编码开始转换。
-t, --to-code=NAME指定输出文件编码,把字符转换到encoding编码。
-l, --list列出已知的编码字符集合
-c忽略输出的非法字符
-o, --output=FILE指定输出文件
-s, --silent禁止警告信息,但不是错误信息
–verbose显示进度信息
-?, --help显示帮助信息
–usage显示简单使用信息
-V, --version打印版本信息
文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux进阶新增用户26354 人正在系统学习中

与[换帖]Linux命令之iconv命令相似的内容:

[换帖]Linux命令之iconv命令

一、命令简介 日常工作中我们需要将windows生成的文件上传到Linux系统,有时候会因为编码问题出现显示乱码。例如我上传了一个csv文件到Linux服务器上,默认编码为GB2312,在Linux打开则会出现乱码,我们需要将文件进行编码转换。iconv命令对于给定文件把它的内容从一种编码转换成另一

[转帖]Linux基础命令---echo打印内容到标准输出

https://www.cnblogs.com/wj78080458/p/11027763.html echo echo指令可以输出内容到标准输出,以空白分割字符串,并且后面增加换行。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1、语法 echo [-ne

[转帖]Debian9换源(阿里源)(Linux子系统)

http://www.taodudu.cc/news/show-5410026.html?action=onClick 默认你已经装好Linux子系统。 Step 0: 换源核心就是把/etc/apt/sources.list 的内容替换成国内的镜像 这里以阿里云的镜像为参考 deb http://

博客添加评论功能及定制化样式

哈喽大家好,我是咸鱼。(博客网址: https://xxxsalted.github.io/) 在搭建了博客并换了主题之后,发现有许多细节方面的东西还需要完善和定制化一下,比如说行距和引用的样式我不是很喜欢,以及没有评论功能。 于是决定自己动手,说干就干。 PS:下文的修改操作仅限于博客主题(Kli

Zabbix Timeout 设置不当导致的问题

哈喽大家好,我是咸鱼 今天跟大家分享一个关于 zabbix Timeout 值设置不当导致的问题,这个问题不知道大家有没有碰到过 ## 问题 事情经过是这样的: 把某一台 zabbix agent 的模板由原来的 `Template OS Windows by Zabbix agent` 换成了 `

Linux 根文件系统的移植(从入门到精通)

一、简介 提到操作系统的安装,还得从大学的时候说起,刚入学的时,朋友的系统本崩了,跑去电脑城换个系统花了40大洋,震惊了贫穷的我。好像发现了商机,果断开始了折腾自己的电脑,然后用朋友的电脑进行测试,由于对启动项不了解,有次蹦了过后,自己花钱去维修电脑哪里安装了一次,偷偷的学习。在这样的不断折腾下,慢

[转帖]Linux性能优化和内核观测 - 内存篇(一)

内存虚拟内存Linux 采用的是​​虚拟内存​​机制,每个进程都有自己的虚拟内存地址空间,仅当实际使用内存的时候才会映射到物理内存地址之上。这种设计提供了物理内存的超额分配,Linux 中的内存管理机制包括页换出守护进程(page out daemon)、物理换页设备(swap device),以及

request to https://registry.npm.taobao.org/cnpm failed, reason: certificate has expired

换华为的,否则会出问题:cnpm confg set registry https://mirrors.huaweicloud.com/repository/npm/ npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm

旧酒换新瓶,新版M1/M2芯片Macos(Ventura)安装古早版本Python2.7(Python2.x)

向下兼容特性是软件开发系统的一个重要指标,它是指一个新的系统或者软件能够与旧的系统或软件兼容并正常运行。这意味着旧系统或软件可以在新系统或软件中使用,而不会出现问题。向下兼容对于提高软件或系统的可用性非常重要,因为它允许用户在不更换旧系统或软件的情况下使用新系统或软件。 我们知道MacOS系统从Mo

[转帖]字节换算

https://www.cnblogs.com/huazhixu/p/16544808.html 1B (byte 字节); 1KB(Kilobyte 千字节) = 2^10 B = 1024 B; 1MB(Megabyte 兆字节) = 2^10 KB = 1024 KB = 2^20 B; 1G