环境

在内部,iconv程序使用iconv(3)函数,该函数又使用gconv模块(动态加载的共享库)在字符集之间进行转换。在调用iconv(3)之前,iconv程序必须首先使用iconv_open(3)分配一个转换描述符。后一个函数的操作受GCONV_PATH环境变量的设置影响:

*
如果未设置GCONV_PATH,则iconv_open(3)加载由iconvconfig(8)创建的系统gconv模块配置缓存文件,然后根据该配置加载执行转换所需的gconv模块。如果系统gconv模块配置缓存文件不可用,则使用系统gconv模块配置文件。
*
如果定义了GCONV_PATH(以冒号分隔的路径名列表),则不使用系统gconv模块配置缓存。相反,iconv_open(3)首先尝试通过依次搜索GCONV_PATH中的目录来尝试加载配置文件,然后是系统默认的gconv模块配置文件。如果目录不包含gconv模块配置文件,则该目录可能包含的所有gconv模块都将被忽略。如果目录包含gconv模块配置文件,并且确定此转换所需的模块在目录中可用,则从该目录加载所需的模块,顺序是使用在GCONV_PATH中找到的第一个合适的模块。通过在GCONV_PATH目录中提供这样的模块,用户可以使用自定义模块,甚至替换系统提供的模块。

语法

iconv [选项] [-f从编码] [-t编码] [输入文件] ...

退出状态

成功为零,错误为非零。

选项

-ffrom-encoding, --from-code=from-encoding
对输入字符使用from-encoding。
-tto-encoding, --to-code=to-encoding
对输出字符使用to编码。
如果将字符串// IGNORE附加到to-encoding,则将无法转换的字符丢弃,并在转换后显示错误。
如果将字符串// TRANSLIT附加到to-encoding,则在需要和可能的情况下将转换的字符音译。这意味着当一个字符不能在目标字符集中表示时,可以通过一个或几个看起来相似的字符来近似。目标字符集之外且无法音译的字符在输出中被替换为问号(?)。
-l, --list
列出所有已知的字符集编码。
-c
静默丢弃无法转换的字符,而在遇到此类字符时会终止它们。
-ooutputfile, --output=outputfile
使用outputfile进行输出。
-s, --silent
该选项被忽略;仅出于兼容性目的而提供。
--verbose
处理多个文件时,输出有关标准错误的进度信息。
-?, --help
打印使用情况摘要并退出。
--usage
打印简短的使用情况摘要并退出。
-V, --version
打印iconv的版本号,许可证和免责声明。

示例

将文本从ISO 8859-15字符编码转换为UTF-8:

$ iconv -f ISO-8859-15 -t UTF-8 < input.txt > output.txt

下一个示例将UTF-8转换为ASCII,并在可能的情况下进行音译:

$ echo abc ß α € à ḃç | iconv -f UTF-8 -t ASCII//TRANSLIT
abc ss ? EUR abc

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

名称

iconv-将文本从一种字符编码转换为另一种

另外参见

语言环境(1),uconv(1),iconv(3),nl_langinfo(3),字符集(7),iconvconfig(8)

ICONV - Linux手册页

Linux用户手册 第1部分
更新日期: 2020-06-09

文件

/usr/lib/gconv
通常的默认gconv模块路径。
/usr/lib/gconv/gconv-modules
通常的系统默认gconv模块配置文件。
/usr/lib/gconv/gconv-modules.cache
通常的系统gconv模块配置缓存。

说明

iconv程序以一种编码方式读取文本,然后以另一种编码方式输出文本。如果未提供任何输入文件,或者以破折号(-)给出,则iconv从标准输入中读取。如果未提供输出文件,则iconv将写入标准输出。

如果未提供from-encoding,则默认值是从当前语言环境的字符编码派生的。如果未给出to-encoding,则默认值是从当前语言环境的字符编码派生的。

遵循规范

POSIX.1-2001。

日期:2019-08-20 17:58:33 来源:oir作者:oir