关于 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="Íõ";
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
Linux和UNIX的区别和联系
Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主 ......
我在安装redhat9的时候有些服务没选,比如samba,http,ntfs,telnet现在不想重装系统了,请问该怎么做?
我在添加/删除应用程序中装了samba,但是重启之后,在“系统设置-服务器设置”中怎么还没出现samba服务器 ......
#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 ......
在程序中调用chroot("/mnt");后 我想再转回chroot("/"); 这个时候不能再转回系统根目录环境了 应该怎么做??
chroot()执行成功之后,根目录是进行了切换,但是当前工作目录没有变化,还是chro ......