Linux下实现UTF-8和GB2312互相转换的方法

 更新时间:2016年12月26日 08:42:46   投稿:jingxian  
下面小编就为大家带来一篇Linux下实现UTF-8和GB2312互相转换的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦

实例如下:

#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互相转换的方法全部内容了,希望大家多多支持脚本之家~

相关文章

  • 浅谈linux kernel对于浮点运算的支持

    浅谈linux kernel对于浮点运算的支持

    今天小编就为大家分享一篇浅谈linux kernel对于浮点运算的支持,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 两个linux服务器间复制文件方式

    两个linux服务器间复制文件方式

    这篇文章主要介绍了两个linux服务器间复制文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Linux如何利用iptables屏蔽某些域名

    Linux如何利用iptables屏蔽某些域名

    这篇文章主要介绍了Linux如何利用iptables屏蔽某些域名问题,具有很好的参考价值,希望对大家有所帮助,
    2023-09-09
  • Centos8环境下修改ssh端口号方法

    Centos8环境下修改ssh端口号方法

    大家好,本篇文章主要讲的是Centos8环境下修改ssh端口号方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-12-12
  • Linux vim全局替换的实现方法

    Linux vim全局替换的实现方法

    这篇文章主要介绍了Linux vim全局替换的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • environments was not found on the java.library.path 问题的解决方法

    environments was not found on the java.library.path 问题的解决方法

    The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path 问题的解决方法,需要的朋友可以参考下
    2016-08-08
  • Linux中使用NTP保持精确时间的方法详解

    Linux中使用NTP保持精确时间的方法详解

    Linux系统下,一般使用ntp服务来同步不同机器的时间,NTP 是网络时间协议(Network Time Protocol)的简称,下面这篇文章主要给大家介绍了关于Linux中使用NTP保持精确的时间的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2018-03-03
  • Linux 内存释放命令详解

    Linux 内存释放命令详解

    这篇文章主要介绍了Linux 内存释放命令的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • Linux关机时执行指定脚本功能实现

    Linux关机时执行指定脚本功能实现

    本篇文章给大家分享了Linux关机时执行指定脚本功能的实现详解,对此有需要的朋友跟着小编一起学习下。
    2018-03-03
  • Linux进程如何终止

    Linux进程如何终止

    这篇文章主要介绍了Linux进程如何终止问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论