iconv编译
‘壹’ windows iconv.h可以直接用编译好的吗
最新版的iconv(目前是libiconv-1.14.tar.gz)已经不再提供Visual C++的编译文件,最后一个支持VC编译的iconv版本是libiconv-1.11.1.tar.gz。虽然不是最新版,但是在Windows下编译,只好将就了,功能应该差不了多少。
下载libiconv-1.11.1.tar.gz并解压,打开命令提示行,进入libiconv-1.11.1目录,输入命令:
[html] view plain print?
nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MD
nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MD PREFIX=C:\iconv install
等待编译结束后就能在C:\iconv找到相应的头文件和库文件了。
[plain] view plain print?
iconv.exe --version
[plain] view plain print?
iconv (GNU libiconv 1.11)
Copyright (C) 2000-2006 Free Software Foundation, Inc.
This is free software; see the source for ing conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.
‘贰’ ffmpeg 为什么要iconv
ffmpeg处理的音视频多媒体里面存在meta信息,里面有比如作者、专辑、版本等信息,中文、外文等字符集需要支持的话就需要libiconv库
‘叁’ linux下C语言iconv字符转换问题
#include <iconv.h>
size_t iconv(iconv_t cd,
char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft);
你看函数原型, outbuf是一个 char **类型
在函数手册中:
The iconv() function converts one multibyte character at a time, and for each character conversion it increments *inbuf and decrements
*inbytesleft by the number of converted input bytes, it increments *outbuf and decrements *outbytesleft by the number of converted
output bytes
也就是说,当你执行过iconv以后,*outbuf所指向的内存空间位置已经被改掉了, 所以你任何时候去读*outbuf, 都是读不到任何iconv后的数据的(都在*outbuf这个指针前面放着呢)。
所以你应该 预先备份outbuf的数据,
比如 char k[1000]; char *outb = k; 执行完iconv(t,&inb,&inl,&outb,&outl)以后,你去读k数组就可以了。
‘肆’ iconv函数 编译要加libconv吗
libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。
包括的编码有:
欧洲语系
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}
‘伍’ windows下如何用iconv.h
头文件"iconv.h"。iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。
它的作用是在多种国际编码格式之间进行文本内码的转换。
linux下的函数原型
size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
iconv是一个计算机程序以及一套应用程序编程接口的名称。
作为应用程序的iconv采用命令行界面,允许将某种特定编码的文件转换为另一种编码。
iconv基于GPL公开源代码,是GNU项目的一部分。在各种UNIX操作系统下均可使用,而在Windows系统,需要特殊的环境如cygwin或者GnuWin32等软件平台下方可使用。现在在SourceForge上也有运行于Windows系统的,需要同时安装gettext程序。
目前版本为2.3.26,支持的内码包括:Unicode相关编码,如UTF-8、UTF-16等等,各国采用的ANSI编码,其中包括GB2312、BIG5等中文编码方式。
输入/输出格式规范:
-f,--from-code=NAME始文本编码-t,--to-code=NAME输出编码
信息:
-l,--list列举所有已知的字符集
-c从输出中忽略无效的字符-o,--output=FILE输出文件-s,--silentsuppresswarnings--verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号示例:
列出支持的字符编码
[root@new55~]#iconv-..(aliases).所有已知字符集
‘陆’ 求助一下,想在windows下安装iconv模块,如何编译
目前版本为2.3.26,支持的内码包括:Unicode相关编码,如UTF-8、UTF-16等等,各国采用的ANSI编码,其中包括GB2312、BIG5等中文编码方式。
输入/输出格式规范:
-f,--from-code=NAME始文本编码-t,--to-code=NAME输出编码
信息:
-l,--list列举所有已知的字符集
-c从输出中忽略无效的字符-o,--output=FILE输出文件-s,--silentsuppresswarnings--verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号示例:
列出支持的字符编码
[root@new55~]#iconv-..(aliases).所有已知字符集
‘柒’ LINUX下板子需要用到iconv库,在linux交叉编译环境下,编译通过没有问题,但是拿到板子上
看下iconv用的是哪个库,在configure的时候把他加上去就可以了
像gcc的话就./configure --gcc=/usr/local/gcc/bin
或者把一些lib库的路径放到你的PATH里面
‘捌’ [求助][急!!]php和iconv库交叉编译的问题
可以在-with-iconv-dir= 后面接上你的iconv安装路径 比如 --with-iconv-dir=/usr/local/iconv
‘玖’ 如何开启(关闭)PHP的iconv模块
榭梢越�恢忠阎�淖址��募��怀闪硪恢忠阎�淖址��募�谋喑探涌凇K�淖饔檬窃诙嘀止�时嗦敫袷街�浣�形谋灸诼氲淖�弧� 开启方法Windows下,找到打开php.ini文件,找到 ;extension=php_iconv.dll 并删除最前面的;,保存并重启服务器。 Linux下,在编译的时候加入 --with-iconv参数关闭方法按照开启方法,反着来。
‘拾’ 如何将libiconv编译成64bit
一、下载1、下载 libiconv 当前版本:libiconv-1.14.tar.gzhttp://www.gnu.org/software/libiconv/#downloadinghttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz2、下载VS工程http://download.csdn.net/detail/ab7936573/81613673、下载安装cygwin(不需要gcc g++ make)https://www.cygwin.com/二、编译解压 libiconv-1.14.tar.gz到当前目录 生成 libiconv-1.14文件夹解压Project.rar到当前目录 生成Project 文件夹移动Project文件夹到libiconv-1.14中,启动.sln,配置x64,改名makefile.h,改成MT/MTD/MD/MDDcygwin切到libiconv-1.14文件夹中,./configure编译DEBUG/RELEASE目标文件:.lib \libiconv-1.14\Project\x64中的Debug和Release.h \libiconv-1.14\include \libiconv-1.14\libcharset\include