《经典精彩Lib翻译》系列之libiconv (3)ICONV_OPEN函数

目录(?)[+]

ICONV_OPEN函数

翻译:兵不厌库

like.lib@gmail.com

11/22/2007

查看原文

http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html


名称

iconv_open –申请一个字符集转换的描述符。

 

纲要

#include <iconv.h>

 

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

 

描述

iconv_open函数申请一个转换描述符,转换字节序列从编码fromcode到编码tocode

fromcodetocode允许的值依赖于本地系统。

支持以下编码方式:

l        欧洲语言

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

l        犹太语言

ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}

l        日语

EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1

l        中文

EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT

l        韩语

EUC-KR, CP949, ISO-2022-KR, JOHAB

l        亚美尼亚语

ARMSCII-8

l        亚美尼亚语

Georgian-Academy, Georgian-PS

l        塔吉克语

KOI8-T

l        哈萨克语

PT154

l        泰国语

ISO-8859-11, TIS-620, CP874, MacThai

l        老挝语

MuleLao-1, CP1133

l        越南语

VISCII, TCVN, CP1258

l        特殊平台

HP-ROMAN8, NEXTSTEP

l        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
C99, JAVA

l        Full Unicode, 按uint16_t/uint32_t (with machine dependent endianness and alignment)

UCS-2-INTERNAL, UCS-4-INTERNAL

l        Locale dependent, 按char/wchar_t (with machine dependent endianness and alignment, and with OS and the current LC_CTYPE locale facet)

char, wchar_t

 

如果配置了选项--enable-extra-encodings,还支持部分其它编码方式:

l        欧洲语言

CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}

l        犹太语言

CP864

l        日语

EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3

l        中文

BIG5-2003 (experimental)

l        土库曼语

TDS565

l        特殊平台

ATARIST, RISCOS-LATIN1

 

名称为空的编码方式等同于“char”:表示依赖本地的字符编码。

 

当字符串“//TRANSLIT”追加到tocode时,打开字译功能。意思是当字符不能在目标字符集上显示时,选择一个或多个字形相近的字符代替。

 

当字符串“// IGNORE”追加到tocode时,字符不能在目标字符集上显示时,将被忽略。

 

iconv的结果转换描述符能使用任意多次,直到调用iconv_close函数释放掉。

 

转换描述符包含转换状态。调用iconv_open创建后,转换状态处于初始状态。调用iconv将改变描述符的转换状态。(意味着转换描述符不能在多线程中同时使用。)把转换状态恢复至初始状态,只需把NULL作为inbuf参数来调用iconv。

 

返回值

iconv_open函数返回一个新申请的转换描述符。出错时,将修改errno并返回(iconv_t)(-1)。

 

错误

除了其它错误以外,出现以下错误:

EINVAL

    从fromcodetocode的编码转换不被支持。

 

遵循

POSIX:2001

 

查看相关

iconv(3), iconvctl(3), iconv_close(3)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值