iconv(1) 命令行实用程序可将字符或字符序列从一种代码集转换为另一种代码集。它支持各种代码集。由于各平台之间代码集名称通常会不同,借助 iconv 的别名机制,许多代码集支持使用多个名称。运行以下命令可获取系统中当前可用的代码集列表:
$ /usr/bin/iconv -l
由于多个软件包有 iconv 模块,因此可以通过安装其他软件包来扩展缺省列表。缺省安装包括 system/library/iconv/utf-8 软件包,后者含有 iconv 模块的基本集,用于在 UTF-8 与其他 Unicode 代码集和所选定其他代码集之间进行转换。软件包管理器的系统/国际化类别中提供了其他软件包,也可以使用 system/library/iconv/* 名称模式通过 pkg (1) 命令来安装这些软件包。
iconv —f 选项定义源代码集,-t 选项定义目标代码集。可以使用 iconv 按如下所示将文件或标准输入转换为标准输出:
$ /usr/bin/iconv -f eucJP -t UTF-8 file.txt
此示例将 file.txt 文件名从 eucJP 代码集(针对日文的扩展 UNIX 代码包格式)转换为 UTF-8 代码集,并将结果写入标准输出。
在 Oracle Solaris 11 中,iconv 已扩展为包括多种标志,这些标志用于在以下特殊情况下修改转换行为:
非法字符-输入字符在声明的源代码集中无效
非相同字符-目标代码集中不存在匹配字符
此外,也可在命令行上使用 //ILLEGAL_DISCARD、//NON_IDENTICAL_DISCARD、//IGNORE 和 //TRANSLIT 等标志。有关更多信息,请参见 iconv_open(3C) 手册页。
有关 iconv 的更多信息,请参见 iconv(1)、iconv(3C)、iconv_open(3C) 和相关手册页。