`

linux utf8与gb2312转换函数

    博客分类:
  • c++
阅读更多
#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编码转换

    UTF_8与GB2312编码转换 linux上面支持的是utf_8不支持GB2312编码,通过这个函数可以转换!

    C++写的Windows下GB2312与UTF-8相互转换代码.rar

    C++写的Windows下GB2312与UTF-8相互转换代码,VC实现,调用了windows底层函数,不支持linux环境

    GB2312与UTF-8互转程序,包含源代码,MAKEFILE,及最终库,百分百直接使用

    GB2312与UTF-8互转程序,包含源代码,MAKEFILE,及最终库,百分百直接使用

    多字节与UTF-8、Unicode之间的转换

    多字节与UTF-8、Unicode之间的转换 ,里面有相互转换的6个函数 ,稍微修改下可以加到自己的c++程序中,比较好用

    gbk和utf8转换程序

    最近看c++11,发现c++11增加了对utf8的直接支持,这样就可以直接进行utf8和gbk的互相转换了,而无需使用windows的函数。自己完成了一下,发现确实强大。

    UNIX/LINUX下C语言中文短信UCS2编码和解码函数源码

    语言配置不对,这个函数会出错的,另外,例子有点问题,换一个好了 int main() { unsigned char *str="新年快乐,Linux"; unsigned char ucs2str[1024],gbkstr[1024]; int len,i; len=EncodeUCS2(str,ucs2str);...

    Linux C 实现 简单的 汉字转拼音

    简单的汉字转拼音,Linux终端gcc编译。执行与结果,例如: #./a.out 刘 刘:Liu

    console_gbk2utf8_dutf82gbk.zip

    c++跨平台utf8转gbk编码互相转换 在windows下用头文件里的函数进行多字节和宽字符转换, linux下采用头文件里的函数进行编码互相解析。

    libiconv.zip_Linux/Unix编程_LINUX_

    iconv函数库,实现编码转换,UTF8 GB2312

    Synapse TCP/IP Library v24一套通信类和函数库

    支持标准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...

    宋劲彬的嵌入式C语言一站式编程

    3. 数值字符串转换函数 4. 分配内存的函数 26. 链表、二叉树和哈希表 1. 链表 1.1. 单链表 1.2. 双向链表 1.3. 静态链表 1.4. 本节综合练习 2. 二叉树 2.1. 二叉树的基本概念 2.2. 排序二叉树 3. 哈希表 27. 本阶段...

    codetrans-.rar_codetrans_unicode_windows 8

    多字节与UTF-8、Unicode之间的转换,总共六个函数,尤其在windows和linux服务器编码不一致时比较常用

    libiconv的源码汇总

    iconv命令是用来转换文件的编码方式,比如它可以将UTF8编码的转换成GB18030的编码。Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C++函数(非标准库函数),可以用来在C/C++程序中很方便的转换字符编码...

    批量转换目录下文件编码的shell脚本代码

    需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8。 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不一致需要修改。 例子: 代码如下:#!/bin/bash# ...

    微型浏览器 (PHP版)

    2. 内置编码转换, 默认语言UTF8, (开发环境LINUX, 其他系统建议修改此部分) 3. 增加 COOKIE 支持 (基础函数均已提供. 未提供具体逻辑) 4. 支持代理功能 (如需要附属模块, 联系QQ3646923索取, 也可以简单通过CURL实现...

    Thai_test.cpp

    文件里有详细的代码,编码格式选择UTF-8编码,亲测在linux下可以直接运行。字符串可以支持中文、英文、数字、泰文混合输入。都能获得转换后的Unicode编码。其中字符串处理函数KOSA_CharProc(Uint8 *szInput, Uint32 ...

    Linux c编程一站式学习

    Linux C 编程一站式学习 宋劲杉 目录 Linux C 编程一站式学习..............................................1 C 语言入门..........................................................5 第 1 章 程序的基本概念.....

    Clittle:有关C语言的一些小知识

    hexToChar C语言asscii字符打印的陷阱utf8ToUnicodeToNCR C语言UTF8,URL编码,Unicode,Ncr,十六进制,Ascii编码转换cAnalizeFsm.c C语言词法分析状态机ringBuffer C语言简单的环形监狱实现Gcc相关知识gcc / ...

    JTBC网站内容管理系统 v2.0.1.3 for Acc (.NET).rar

    JTBC网站内容管理系统是一套真正免费的,开源的,可对现有模块进行扩充与克隆的网站系统核心,采用UTF-8编码,采取 语言-代码-程序两两分离的技术模式,全面使用了模板包与语言包结构,为用户的修改提供方便,网站...

    JTBC网站内容管理系统 v2.0.1.3 for Sql (.NET).rar

    JTBC网站内容管理系统是一套真正免费的,开源的,可对现有模块进行扩充与克隆的网站系统核心,采用UTF-8编码,采取 语言-代码-程序两两分离的技术模式,全面使用了模板包与语言包结构,为用户的修改提供方便,网站...

Global site tag (gtag.js) - Google Analytics