Unix下UTF-8和GB2312互相转换的函数
来源:互联网 发布:mac不用鼠标新建文件夹 编辑:程序博客网 时间:2024/05/04 15:06
#include<iostream>
#include<iconv.h>
using namespace std;
int utf8togb2312(const char *sourcebuf,size_t sourcelen,char *destbuf,size_t destlen)
{
iconv_t cd;
if( (cd = iconv_open("gb2312","utf-8")) ==0 )
return -1;
memset(destbuf,0,destlen);
const char **source = &sourcebuf;
char **dest = &destbuf;
if(-1 == iconv(cd,source,&sourcelen,dest,&destlen))
return -1;
iconv_close(cd);
return 0;
}
int gb2312toutf8(const char *sourcebuf,size_t sourcelen,char *destbuf,size_t destlen)
{
iconv_t cd;
if( (cd = iconv_open("utf-8","gb2312")) ==0 )
return -1;
memset(destbuf,0,destlen);
const char **source = &sourcebuf;
char **dest = &destbuf;
if(-1 == iconv(cd,source,&sourcelen,dest,&destlen))
return -1;
iconv_close(cd);
return 0;
}
int main()
{
FILE *fp = fopen("love.txt","r");
if(fp == NULL)
{
cout << "open file faiulre" << endl;
return 1;
}
char line[80];
memset(line,0,80);
if( NULL == fgets(line,80,fp))
{
cout << "read file failure" << endl;
return 2;
}
char dest_gb2312[80];
utf8togb2312(line,strlen(line),dest_gb2312,80);
cout << "before convert(utf-8): " << line << endl;
cout << "after convert(gb2312): " << dest_gb2312 << endl;
cout << endl << endl;
char dest_utf8[80];
gb2312toutf8(dest_gb2312,strlen(dest_gb2312),dest_utf8,80);
cout << "before convert(gb2312)" << dest_gb2312 << endl;
cout << "after convert(utf-8)" << dest_utf8 << endl;
return 0;
}
- Unix下UTF-8和GB2312互相转换的函数
- Unix下UTF-8和GB2312互相转换的函数
- GB2312和 UTF8的互相转换函数
- gb2312与UTF-8之间的互相转换
- utf-8和gb2312的相互转换
- Unicode、UTF-8和GB2312的转换
- GB2312和UTF-8的相互转换
- UTF-8转换GB2312函数
- UTF-8转换GB2312函数
- UTF-8和GB2312转换
- gb2312和utf-8下的UrlEncode()
- 【C++】UTF-8字符和GB2312字符相互转换函数
- linux下UTF-8和GB2312之间转换
- linux下UTF-8和GB2312之间转换
- vbscript中gb2312转换为UTF-8编码的函数
- 完全转换UTF-8为GB2312的PHP函数
- vbs 转码 gb2312转换为UTF-8编码的函数
- Linux下Gb2312与UTF-8的转换
- FLEX实践:DATEFIELD 控件与DATE类型的转换
- 激情
- 带点文件夹
- 我见过的几种类型的员工
- MeshContent, GeometryContent and VertexContent
- Unix下UTF-8和GB2312互相转换的函数
- 殇
- 机器码
- 尝试了一种新的求边缘的方法,感觉还不错
- Spring的log4j警告
- 保存 webbrowser 中的 cookies 到 httpwebrequest 中
- 微软云计算平台Azure中止服务22小时
- C# 静态构造函数
- XStream使用学习