Arch manual pages

ICONV_OPEN(3) Linux Programmer's Manual ICONV_OPEN(3)

iconv_open - 分配一个字符集转换的描述符

#include <iconv.h>

iconv_t iconv_open (const char* tocode, const char* fromcode);

iconv_open 函数 分配 一个 用于 把 fromcode 编码的 字符串 转换成 tocode 编码 的 转换 描述符.

fromcodetocode 所允许的值 以及 支持的 组合方式 都是 与 系统 相关的. 对于 这个 libiconv 库, 它 支持 下面 的 编码, 也 支持 其 所有 的 组合.

欧洲语言
ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh
闪米特语言
ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
日文
EUC-JP, SHIFT-JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
中文
EUC-CN, HZ, GBK, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, ISO-2022-CN, ISO-2022-CN-EXT
韩文
EUC-KR, CP949, ISO-2022-KR, JOHAB
Armenian
ARMSCII-8
Georgian
Georgian-Academy, Georgian-PS
泰语
TIS-620, CP874, MacThai
捞挝语
MuleLao-1, CP1133
越南语
VISCII, TCVN, CP1258
特定平台
HP-ROMAN8, NEXTSTEP
Full Unicode
UTF-8
UCS-2, UCS-2BE, UCS-2LE
UCS-4, UCS-4BE, UCS-4LE
UTF-16, UTF-16BE, UTF-16LE
UTF-32, UTF-32BE, UTF-32LE
UTF-7
JAVA
    
uint16_tuint32_t 表示的 Unicode
(其 字节顺序 和 对齐方式 与 具体 机器 有关) UCS-2-INTERNAL, UCS-4-INTERNAL
charwchar_t 表示的 与 区域设置 相关的 编码
(其 字节顺序 和 对齐方式 与 具体 机器 有关, 其 语意 与 操作系统 和 当前 区域设置 中的 LC_CTYPE 有关) char, wchar_t

tocode 后面 加上 "//TRANSLIT" 表示, 当 在目标 字符集 中 不能 表示 一个 字符 时, 就用 同其 相似 的 一个 字符 来 代替.

其 返回的 转换 描述符 可以 被 iconv 多次 使用. 只要 没有 用 iconv_close 将其 释放, 它 就是 有效的.

转换 描述符 包含了 转换的 状态. 在用 iconv_open 建立 一个 描述符 时 状态为 初始态. iconv 会 改变 它的 状态. (这说明 一个 描述符 不能在 多线程中 同时 使用.) 可以 把 NULL 作为 inbuf 传给 iconv 来 使其 回到 初始态.

iconv_open 函数 返回 一个 新的 转换 描述符. 如果 发生 错误 则 设置 errno 变量 同时 返回 (iconv_t)(-1).

除了 一般的 错误, 还可能 有 下面的 错误:
EINVAL
此系统 不支持 从 fromcodetocode 的 转换.

UNIX98

iconv(3), iconv_close(3)

唐友 <tony_ty@263.net>

2002/3/21

http://cmpp.linuxforum.net

本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
May 6, 2001 GNU