#include<iconv.h> #include <stdio.h>

#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() {

char line[80];

char dest_gb2312[200];

char dest_utf8[200];

int ret ;

FILE *fp = fopen("love.txt","r");

if(fp == NULL)

{

printf("oh my dear,open fail...\n");

return 1;

}

memset(line,0,80);

if( NULL == fgets(line,80,fp))

{

printf("oh fgets fail...\n");

return 2;

}

printf( "----- :%s\n",line );

ret  = gb2312toutf8(line,strlen(line),dest_gb2312,200);

// ret  = gb2312toutf8(dest_gb2312,strlen(dest_gb2312),dest_utf8,80);

printf( "ret=%d\n\n\n",ret);

printf( "gb2312:%s\n",line );

printf( " utf-8:%s\n\n\n\n\n\n", dest_gb2312 );

ret  = utf8togb2312(dest_gb2312,strlen(dest_gb2312),dest_utf8,200);

printf( "ret=%d\n\n\n ",ret);

printf( " utf-8:%s\n ",dest_gb2312);

printf( "gb2312:%s\n ",dest_utf8);

return 0;

}

Linux下UTF-8和GB2312互相转换的函数的更多相关文章

  1. Linux 下查看文件字符编码和转换编码

    Linux 下查看文件字符编码和转换编码 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linu ...

  2. linux下文件编码的查看与转换(转)

    通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有乱码的情况.另外,有时要将文件进行编码转换,如将简体中文转 ...

  3. linux下使用gcc/g++编译代码时gets函数有错误

    今天在linux中使用个g++编译一个名为myfirst.cpp的代码的时候,出现如下错误 myfirst.cpp: In function ‘int main()’:myfirst.cpp:11:2 ...

  4. Linux下文件字符编码格式检测和转换

    目前多数情况下, 我们遇到的非英文字符文件都是使用UTF-8编码的, 这时一般我们查看这些文件的内容都不会有问题. 不过有时, 我们有可能会遇到非UTF-8编码的文件, 比如中文的GBK编码, 或者俄 ...

  5. Linux下查看文件编码,文件编码格式转换和文件名编码转换

    linux相关   2008-10-07 10:46   阅读1392   评论0   字号: 大大  中中  小小  如果你需要在Linux中 操作windows下的文件,那么你可能会经常遇到文件编 ...

  6. Gnu Linux下文件的字符编码及转换工具

    /*********************************************************************  * Author  : Samson  * Date   ...

  7. windows下的批处理bat文件和Linux下的shell文件的互相转换

    shell(Linux.Solaris) bat(windows) 含义 # rem 注释行 /[directory]/[directory]/.../[directory]/ [disk]:\[di ...

  8. Linux下安装ffmpeg,视频格式转换

    下载ffmpeg 从ffmpeg官网:http://ffmpeg.org/download.html 下载最新的ffmpeg安装包,然后通过如下命令解压: 解压 ffmpeg-*.tar.bz2 文件 ...

  9. linux下dos环境和unix环境转换

    DOS转UNIX::setfileformat=unix UNIX转DOS::setfileformat=dos and :set ff=unix

随机推荐

  1. GOOGLE定位

    GOOGLE定位 /// <author>cxg 2018-3-27</author> unit umap; interface uses System.SysUtils, S ...

  2. 第一篇 对Javascript中原型的深入理解

      理解原型对象 在Javascript中不管什么时候,仅仅要创建一个新的函数,就会依据一组特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象(这个对象的用途是包括能够有特定 ...

  3. Android 获得view的宽和高

    转自:http://blog.csdn.net/yangdeli888/article/details/25405263 在oncreate()中利用view.getWidth()或是view.get ...

  4. android用jsonReader来解析json

    对于这个json: { "id" : "3232", "data" : [{ "data1" : "555&q ...

  5. Linux下解决 id_rsa 权限不够

    问题 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @         WARNING: UNPROTECTED PRIVAT ...

  6. django 基础知识回顾

    内容回顾: 1. ajax参数 url: type: data: 1.value不能是字典 {k1:'v1',k2:[1,2,3,],k3; JSON.string} 2.$('').serilize ...

  7. webuploader解决不能重复上传问题及一些常见问题处理

    uploader = WebUploader.create({ swf: 'resources/js/webuploader-0.1.5/Uploader.swf', // 文件接收服务端. serv ...

  8. delegate和event的区别 (zz)

    一. delegate C#代理实际上类似于C++中的函数指针,因为C#中不存在指针,所以用代理可以完成一些原来在C++中用函数指针完成的操作,例如传递一个类A的方法m给另一个类B的对象,使得类B的对 ...

  9. VMWARE虚拟机安装64位系统此主机支持IntelVTx 但IntelVTx处于禁用状态

    1.进入BIOS(我的电脑是Thinkpad e480,进入按钮是F12/ Fn+F12) 2.选择App Menu,再选择第一项Setup,进入 3.选择Security,选择下面第四项Virtua ...

  10. Linux下性能监控的三把军刀

    Linux主机怎么管,十八般兵器件件都可以算得上是瑞士军刀,称手的兵器一两件即可,最常用的,莫过于stat家族三兄弟吧. 计算机主要资源是什么?CPU.内存和磁盘?尽管现在云计算技术有多普及,查看一个 ...