ICONV - Linux手册页
时间:2019-08-20 17:58:33 来源:igfitidea点击:
Linux用户手册 第1部分
更新日期: 2020-06-09
名称
iconv-将文本从一种字符编码转换为另一种
语法
iconv [选项] [-f从编码] [-t编码] [输入文件] ...
说明
iconv程序以一种编码方式读取文本,然后以另一种编码方式输出文本。如果未提供任何输入文件,或者以破折号(-)给出,则iconv从标准输入中读取。如果未提供输出文件,则iconv将写入标准输出。
如果未提供from-encoding,则默认值是从当前语言环境的字符编码派生的。如果未给出to-encoding,则默认值是从当前语言环境的字符编码派生的。
选项
- -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的版本号,许可证和免责声明。
退出状态
成功为零,错误为非零。
环境
在内部,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目录中提供这样的模块,用户可以使用自定义模块,甚至替换系统提供的模块。
文件
- /usr/lib/gconv
- 通常的默认gconv模块路径。
- /usr/lib/gconv/gconv-modules
- 通常的系统默认gconv模块配置文件。
- /usr/lib/gconv/gconv-modules.cache
- 通常的系统gconv模块配置缓存。
遵循规范
POSIX.1-2001。
示例
将文本从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
另外参见
语言环境(1),uconv(1),iconv(3),nl_langinfo(3),字符集(7),iconvconfig(8)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。