Linux iconv命令

参考资料

  1. Linux iconv 指令

目录

  • 一. 简介
  • 二. 查看支持的编码
  • 三. `SHIFT-JIS` 转 `UTF-8`


一. 简介

iconv 是 Linux 上用于文本编码转换的标准工具,基于 GNU libiconv 库,一般Linux操作系统都会内置该命令,无需额外进行安装。
主要用于将文件从一种字符集(如 GBK、Shift_JIS)转换为另一种(如 UTF-8)。

短option 长option 说明
-f 编码格式 --from-code=编码格式 源文件编码
-t 编码格式 --to-code=编码格式 目标文件编码
-c 忽略无效的输入字符
-o --output=文件名 指定输出文件;不指定则输出到标准输出(终端)
-l --list 显示支持的所有编码名称
--verbose 输出转换过程中的详细信息

二. 查看支持的编码

apluser@FengYeHong-HP:~$ iconv --list | grep -e "UTF-8" -e "SHIFT-JIS"
ISO-10646/UTF-8/
SHIFT-JIS//
UTF-8//

三. SHIFT-JISUTF-8

⏹准备一个文件,文件编码为Shift_JIS,换行符为LF

  • 直接使用cat打开会显示乱码
  • 如果使用nkf指定使用utf-8会成功打开
apluser@FengYeHong-HP:~$ file info.txt
info.txt: Non-ISO extended-ASCII text
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ nkf --guess info.txt
Shift_JIS (LF)
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ cat info.txt
���ُ؃J�[�h��Ⴄ
�x���萔��
apluser@FengYeHong-HP:~$ cat info.txt | nkf -w
入館証カードを貰う
支払手数料

⏹使用iconv指定文件源编码和目标编码将文件内容打印到控制台

  • 如果不指定目标文件编码的话,默认为UTF-8
apluser@FengYeHong-HP:~$ iconv --from-code="SHIFT-JIS" --to-code="UTF-8" info.txt
入館証カードを貰う
支払手数料
apluser@FengYeHong-HP:~$ iconv --from-code="SHIFT-JIS" info.txt
入館証カードを貰う
支払手数料

⏹将转换编码之后的文件输出到新文件中

apluser@FengYeHong-HP:~$ iconv --from-code="SHIFT-JIS" --to-code="UTF-8" info.txt --output="new_info.txt"
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ ls -l new_info.txt
-rw-r--r-- 1 apluser apluser 44 Jun 21 13:47 new_info.txt
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ nkf --guess new_info.txt
UTF-8 (LF)
apluser@FengYeHong-HP:~$ cat new_info.txt
入館証カードを貰う
支払手数料

你可能感兴趣的:(Linux,linux,运维)