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 下查看文件字符编码和转换编码
Linux 下查看文件字符编码和转换编码 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linu ...
- linux下文件编码的查看与转换(转)
通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有乱码的情况.另外,有时要将文件进行编码转换,如将简体中文转 ...
- linux下使用gcc/g++编译代码时gets函数有错误
今天在linux中使用个g++编译一个名为myfirst.cpp的代码的时候,出现如下错误 myfirst.cpp: In function ‘int main()’:myfirst.cpp:11:2 ...
- Linux下文件字符编码格式检测和转换
目前多数情况下, 我们遇到的非英文字符文件都是使用UTF-8编码的, 这时一般我们查看这些文件的内容都不会有问题. 不过有时, 我们有可能会遇到非UTF-8编码的文件, 比如中文的GBK编码, 或者俄 ...
- Linux下查看文件编码,文件编码格式转换和文件名编码转换
linux相关 2008-10-07 10:46 阅读1392 评论0 字号: 大大 中中 小小 如果你需要在Linux中 操作windows下的文件,那么你可能会经常遇到文件编 ...
- Gnu Linux下文件的字符编码及转换工具
/********************************************************************* * Author : Samson * Date ...
- windows下的批处理bat文件和Linux下的shell文件的互相转换
shell(Linux.Solaris) bat(windows) 含义 # rem 注释行 /[directory]/[directory]/.../[directory]/ [disk]:\[di ...
- Linux下安装ffmpeg,视频格式转换
下载ffmpeg 从ffmpeg官网:http://ffmpeg.org/download.html 下载最新的ffmpeg安装包,然后通过如下命令解压: 解压 ffmpeg-*.tar.bz2 文件 ...
- linux下dos环境和unix环境转换
DOS转UNIX::setfileformat=unix UNIX转DOS::setfileformat=dos and :set ff=unix
随机推荐
- lua string介绍
1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(s ...
- JDK JRE区别
JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:/Program Files/Java/jdk1.5.x/目录下的JRE.而C:/Program Files/Java/ ...
- Win10系统中新增的快捷键,做个记录
Win10系统中新增的快捷键,做个记录 1.Win+Q或者Win+S 打开下面搜索框 2.Win+T 切换任务栏上程序: 3.Win+ ...
- iOS中WebKit框架应用与解析
WebKit是iOS8之后引入的专门负责处理网页视图的框架,其比UIWebView更加强大,性能也更优. 引言 在iOS8之前,在应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过UR ...
- mac下的一些命令
1.显示隐藏文件 defaults write com.apple.finder AppleShowAllFiles -bool true 2.隐藏隐藏文件 defaults write com.ap ...
- EasyUI-EasyUI框架入门学习
前言 新项目的开发前端技术打算采用EasyUI框架(基于EasyUI较为丰富的UI组件库),项目组长将前端EasyUI这块的任务分配给了我.在进行开发之前,需要我这菜鸟对EasyUI框架进行一些基础的 ...
- 想搞机器学习,不会特征工程?你TM逗我那!
原文:http://dataunion.org/20276.html 作者:JasonDing1354 引言 在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),然而 ...
- @Autowired注入了dao,为什么还要写getDao(){return userDao}这个方法?有什么作用?
Autowired private UserDao userDao; @Override public BaseDao<User> getDao() { return userDao; } ...
- Swift学习笔记 - 字符串
1. 不可变字符串 Objective-C: NSString *string1 = @"Hello World!"; Swift: let string1 = "Hel ...
- Linux Samba安装与使用
一 安装环境: 虚拟机:RedHat 5.4 192.168.75.128 主机环境:WIN7 32bit 192.168.75.1 网络连接方式:NAT 二 安装步骤: 说明: Ø samb ...