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

来源:互联网 发布:巨人网络校园招聘2017 编辑:程序博客网 时间:2024/05/16 19:45

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)

 

 

 

 

 

 


 

 
原创粉丝点击