#includeiostream>
#includeiconv.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,const_cast<char**>(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,const_cast<char**>(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;
}
分享到:
相关推荐
UTF_8与GB2312编码转换 linux上面支持的是utf_8不支持GB2312编码,通过这个函数可以转换!
C++写的Windows下GB2312与UTF-8相互转换代码,VC实现,调用了windows底层函数,不支持linux环境
GB2312与UTF-8互转程序,包含源代码,MAKEFILE,及最终库,百分百直接使用
多字节与UTF-8、Unicode之间的转换 ,里面有相互转换的6个函数 ,稍微修改下可以加到自己的c++程序中,比较好用
最近看c++11,发现c++11增加了对utf8的直接支持,这样就可以直接进行utf8和gbk的互相转换了,而无需使用windows的函数。自己完成了一下,发现确实强大。
语言配置不对,这个函数会出错的,另外,例子有点问题,换一个好了 int main() { unsigned char *str="新年快乐,Linux"; unsigned char ucs2str[1024],gbkstr[1024]; int len,i; len=EncodeUCS2(str,ucs2str);...
简单的汉字转拼音,Linux终端gcc编译。执行与结果,例如: #./a.out 刘 刘:Liu
c++跨平台utf8转gbk编码互相转换 在windows下用头文件里的函数进行多字节和宽字符转换, linux下采用头文件里的函数进行编码互相解析。
iconv函数库,实现编码转换,UTF8 GB2312
支持标准ISO编码(ISO-8859-x),Windows编码(CP-125x),KOI8-R和Unicode(UCS-4, UCS-2, UTF-7 and UTF-8); 支持MIME编码和解码(包括字符转换); 支持SMTP和ESMTP协议 支持HTTP 0.9、1.0和1.1...
3. 数值字符串转换函数 4. 分配内存的函数 26. 链表、二叉树和哈希表 1. 链表 1.1. 单链表 1.2. 双向链表 1.3. 静态链表 1.4. 本节综合练习 2. 二叉树 2.1. 二叉树的基本概念 2.2. 排序二叉树 3. 哈希表 27. 本阶段...
多字节与UTF-8、Unicode之间的转换,总共六个函数,尤其在windows和linux服务器编码不一致时比较常用
iconv命令是用来转换文件的编码方式,比如它可以将UTF8编码的转换成GB18030的编码。Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C++函数(非标准库函数),可以用来在C/C++程序中很方便的转换字符编码...
需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8。 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不一致需要修改。 例子: 代码如下:#!/bin/bash# ...
2. 内置编码转换, 默认语言UTF8, (开发环境LINUX, 其他系统建议修改此部分) 3. 增加 COOKIE 支持 (基础函数均已提供. 未提供具体逻辑) 4. 支持代理功能 (如需要附属模块, 联系QQ3646923索取, 也可以简单通过CURL实现...
文件里有详细的代码,编码格式选择UTF-8编码,亲测在linux下可以直接运行。字符串可以支持中文、英文、数字、泰文混合输入。都能获得转换后的Unicode编码。其中字符串处理函数KOSA_CharProc(Uint8 *szInput, Uint32 ...
Linux C 编程一站式学习 宋劲杉 目录 Linux C 编程一站式学习..............................................1 C 语言入门..........................................................5 第 1 章 程序的基本概念.....
hexToChar C语言asscii字符打印的陷阱utf8ToUnicodeToNCR C语言UTF8,URL编码,Unicode,Ncr,十六进制,Ascii编码转换cAnalizeFsm.c C语言词法分析状态机ringBuffer C语言简单的环形监狱实现Gcc相关知识gcc / ...
JTBC网站内容管理系统是一套真正免费的,开源的,可对现有模块进行扩充与克隆的网站系统核心,采用UTF-8编码,采取 语言-代码-程序两两分离的技术模式,全面使用了模板包与语言包结构,为用户的修改提供方便,网站...
JTBC网站内容管理系统是一套真正免费的,开源的,可对现有模块进行扩充与克隆的网站系统核心,采用UTF-8编码,采取 语言-代码-程序两两分离的技术模式,全面使用了模板包与语言包结构,为用户的修改提供方便,网站...