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

深入解析ICONV字符编码转换库的使用与原理 ICONVICONV库是一个用于字符编码转换的开源库,广泛应用于各种操作系统中,如GNU/Linux、FreeBSD等。它提供了一个灵活、高效的方式来转换文本数据的编码格式,确保信息在不同系统和应用间正确地交换和显示。ICONV库的主要作用是减少因编码格式不兼容导致的数据损坏问题,增强了软件的国际兼容性。UTF-8是一种针对Unicode的可变长度字符编码,也是互联网上使用最广的字符编码。 阅读详情

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。

fromcode和tocode允许的值依赖于本地系统。

支持以下编码方式:

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

    从fromcode到tocode的编码转换不被支持。

 

遵循

POSIX:2001

 

查看相关

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

 

 

 

 

 

 


 

 
实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码) 本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。 阅读详情

相关推荐

SHAP图全解析:从理论到实践,教你如何读懂和优化模型特征

本文全面解析SHAP图,从博弈论基础到实战应用,指导读者如何解读和利用SHAP值优化机器学习模型。通过详解特征重要性条形图、小提琴图、依赖图及决策图等关键可视化工具,帮助数据科学家精准诊断模型、识别特征交互,并将洞见转化为特征工程与模型调试的实际行动,有效提升模型可解释性与性能。

svm4gardener的博客 189

iconv_open()函数

iconv_open()函数: 申请一个字符集转换的描述#include <iconv.h>iconv_t iconv_open(const char* tcode, const char* fromecode) 描述: iconv_open()函数申请一个转换描述符,转换字符序列从编码fromcode到编码tcode 转换描述符包含转换状态,调用icvon_

路飞小迷弟的博客 1万+

5分钟搞懂MSDNet:用Transformer实现小样本语义分割的保姆级教程

本文详细介绍了MSDNet(Multi-Scale Decoder Network)如何利用Transformer架构实现小样本语义分割。通过多尺度解码器和空间Transformer解码器,MSDNet能够在仅有1-5张标注图像的情况下完成精确分割任务。文章提供了PyTorch代码实例和优化技巧,帮助开发者快速掌握这一前沿技术。

weixin_30832143的博客 506

php 编译指定libiconv,PHP升级编译出错 libiconv_open及 apache libiconv

昨天和运维同事,把PHP升级到5.6的,一直编译出错提示:首先是libiconv_open,按网上的方法解决后,重启apache的时候再报libphp5.so: undefined symbol: libiconv,导致apache重启不了。网上对这个错误:undefined reference to libiconv_open,有两个解决方法第一种方法:后configure后make ZEND_...

weixin_39772566的博客 516

从JTAG到AS模式:一文搞懂EP4CE10E22C8N所有配置引脚(MSEL, nCONFIG, DATA0)的用法

本文深入解析EP4CE10E22C8N FPGA的配置引脚(MSEL, nCONFIG, DATA0)在不同模式下的使用方法,特别关注从JTAG到AS模式的切换要点。通过详细的配置模式对比、状态机分析和PCB布局建议,帮助开发者避免常见陷阱,提升FPGA配置成功率。

weixin_33713350的博客 320

小米手机安装Burp证书失败原因与DER格式改造指南

CA证书是HTTPS抓包和移动安全测试的基础组件,其本质是遵循X.509标准的数字凭证,依赖ASN.1/DER编码格式与完整证书链实现可信验证。Android系统默认支持PEM和DER两种编码,但MIUI自14版本起强化安全策略,仅识别DER二进制格式,并强制校验Subject Alternative Name(SAN)、Basic Constraints及证书链完整性。这种企业级加固逻辑导致Burp Suite导出的PEM格式.cer文件在小米设备上‘安装成功但无效’。本文聚焦证书格式转换、SAN字段注入

weixin_33646989的博客 625

在C++编程中使用iconv系列函数进行字符编码格式转换

执行过程中,一次会处理一个多字节字符;入参:@cd,必须是经过iconv_open()函数分配的转换描述符;简单来说,在C/C++编程中,可以使用iconv()系列函数来进行不同字符编码格式之间的字符串的转换,使用时需要给出转换前的字符编码格式和需要转换的字符编码格式。函数描述:该函数会为字符编码转换分配一个转换描述符(coversion descriptor),用以在后续的转换过程中使用;入参:@tocode,转换后的字符编码格式(来自支持的语言列表);返回值:返回分配的转换描述符,当出错时,返回-1。

weixin_42711661的博客 3303

Mamba vs YOLO:目标检测选型指南(附实际项目对比)

本文深入对比了Mamba和YOLO在目标检测领域的性能差异与应用场景。通过实际项目数据,分析了两者在城市交通监控、工业质检等场景下的表现,提供了详细的选型指南和部署优化建议,帮助开发者根据实时性、精度等需求选择最适合的解决方案。

weixin_29062255的博客 369

iconv函数详解

大家都知道 iconv() 是编码转换函数,但是各个参数的具体含义可能不是那么清楚。 我简单介绍一下: 头文件: #include 函数声明: size_t iconv(iconv_t cd, char **restrict inbuf, size_t *restrict inbytesleft, char **restri

Sky_qing的专栏 1万+

二十一.基于国民MCU 的增加M4F DSP库调用的验证

Cortex-M4F内核不仅内置硬件FPU单元,还支持多种DSP指令集,比如支持单周期乘加指令(MAC)等。因此Cortex-M4执行所有的DSP指令集都可以在单周期内完成,而Cortex-M3和M0需要多个指令和多个周期才能完成同样的功能。比如开方运算,M3和M0只能通过迭代法(标准数学函数库)计算,而M4F直接调用VSQRT指令完成。参考:\Nationstech.N32G45x_Library.1.1.1\Nationstech.N32G45x_Library.1.1.1\projects\n32g4

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 934

鱼鹰优化算法(OOA)详解:从猛禽捕食智能到优化算法实现

鱼鹰优化算法(Osprey Optimization Algorithm, OOA)是2023年提出的一种新型元启发式优化算法,灵感来源于鱼鹰(一种中型猛禽)高效的捕食策略。算法模拟了鱼鹰从空中识别水下鱼类位置并俯冲捕食,然后将捕获的鱼带至安全位置享用的全过程,以此抽象出全局探索和局部开发两个核心阶段。OOA算法具有参数少、结构简单、收敛速度快、全局寻优能力强等特点。自提出以来,已在函数优化、机器学习参数调优(如CatBoost模型)、路径规划等多个领域展现出良好性能,为解决复杂优化问题提供了新的有效工具。

qq_42212808的博客 273

Linux(程序设计):27---iconv库(转换字符编码)

待续

董哥的黑板报 5857

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

ICONV函数翻译:兵不厌库like.lib@gmail.com11/22/2007 查看原文:http://www.gnu.org/software/libiconv/documentation/libiconv/iconv.3.html 名称iconv – 执行字符集转换 纲要#include  size_t iconv (icon

allisnew的专栏 3512

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

ICONV_CLOSE函数翻译:兵不厌库like.lib@gmail.com11/23/2007查看原文:http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_close.3.html 名称iconv_close – 释放字符集转换的描述符 纲要#include  

allisnew的专栏 1667

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

ICONVCTL函数翻译:兵不厌库like.lib@gmail.com11/23/2007查看原文:http://www.gnu.org/software/libiconv/documentation/libiconv/iconvctl.3.html 名称iconvctl – 设置iconv的行为。 纲要#include  int icon

allisnew的专栏 3644

关于在ARM平台下,iconv转码函数,iconv_open调用出错问题的解决方案

在此记录一下,在调用#include <iconv.h>的时候,编译如果没有指定include他会自动寻找系统编译器的可能导致编译器的iconv库和你编译出来的库不一样,从而导致出现的情况。

weixin_46972628的博客 981

iconv函数使用

就是不写摘要

qq_41851997的博客 3191

c语言使用iconv函数实现字符编码转换

c语言使用iconv函数实现字符编码转换 linux下提供了iconv库来实现字符编码转换,先介绍下命令行: iconv [-f encoding] [-t encoding] [inputfile ...] 这个用法比较简单。 使用编程方式就要用到三个函数,这三个函数都需要包含头文件#include 。分别为:iconv_open,iconv,iconv_close。 一般步骤为:先使

gwq5210的专栏 1万+

iconv函数

转载自百度文库 头文件"iconv.h"。iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。 它的作用是在多种国际编码格式之间进行文本内码的转换。 linux下的函数原型 size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesl

ostar_liang的专栏 3351

编码转换

utf-8转unicode iconv是linux下的编码转换的工具,它提供命令行的使用和函数接口支持 man手册iconv命令用法如下: iconv -f encoding -t encoding inputfile 有如下选项可用: 输入/输出格式规范: -f, --from-code=名称 原始文本编码 -t, --to-code=名称 输出编码 信息: -l, --...

遥夜 795

C++ UTF-8与GBK字符的转换 —基于Linux 虚拟机 (iconv_open iconv)

C++ UTF-8与GBK字符的转换 —基于Linux 虚拟机 (iconv_open iconv)

wjl990316fddwjl的博客 3547

iconv_open、iconv和iconv_close函数使用示例

bool isUtf8(const char* str) { return ((0xEF == (unsigned char)(str[0])) && (0xBB == (unsigned char)(str[1])) && (0xBF == (unsigned char)(str[2]))); } int code_convert(char *f

一见 1万+
上一篇: 《经典精彩Lib翻译》系列之libiconv (2)ICONV程序
下一篇: 《经典精彩Lib翻译》系列之libiconv (4)ICONV函数
allisnew
博客等级 码龄20年 251粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值