易截截图软件、单文件、免安装、纯绿色、仅160KB

关于 linux 中 iconv() 函数 的问题

最近在写spider 需要要解决 编码转换 问题  用到  iconv() 函数 

但也不知道 哪里有问题  老是整不出来  哪位大侠  帮帮忙 

代码  如下:(头文件没复制)

//CodeConvert.cpp

#include "CodeConvert.h"
#include "stdlib.h"
#include <string.h>
#include <errno.h>

CCodeConv::CCodeConv(const char *from_charset,const char *to_charset)
{
cd=iconv_open(to_charset,from_charset);
if( cd== (iconv_t) -1 )
{
cout < <"cannot open iconv discripter!" < <endl;
iconv_close(cd);
exit(0);
}
}

CCodeConv::~CCodeConv()
{
iconv_close(cd);
}

bool CCodeConv::Convert(char *inbuf,long inlen,char *outbuf,long outlen)
{
char **pin=&inbuf;
char **pout=&outbuf;
memset(outbuf,0,outlen);
if( -1==iconv(cd,pin,(size_t *)&inlen,pout,(size_t *)&outlen) )
{
cout < <"have error in iconv()!" < <endl;
cout < <errno < <" " < <strerror(errno) < <endl;
return false;
}
return true;
}


#include "CodeConvert.h"
#include <string.h>

int main()
{
char *in="Íõ";


相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

【扫盲】 Linux和UNIX的区别和联系

Linux和UNIX的区别和联系


Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主 ......

linux redhat怎么重装服务

我在安装redhat9的时候有些服务没选,比如samba,http,ntfs,telnet现在不想重装系统了,请问该怎么做?
我在添加/删除应用程序中装了samba,但是重启之后,在“系统设置-服务器设置”中怎么还没出现samba服务器 ......

linux程序打不开头文件

#include <fcnt1.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[])
{
  int fd_open,fd_open_create,fd_create;
  if((fd_open=o ......

linux 编程 chroot函数多次调用的问题请教

在程序中调用chroot("/mnt");后 我想再转回chroot("/"); 这个时候不能再转回系统根目录环境了 应该怎么做??
chroot()执行成功之后,根目录是进行了切换,但是当前工作目录没有变化,还是chro ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号