Linux字符串转码utf8,Linux C/C++ 字符集转换,UTF-8,GB2312
Linux C 字符集转换,UTF-8,GB2312
最近帮朋友写个系统接口的小东东,2个系统字符集不同,一个采用UTF-8,一个采用GB2312,不得已需要转换字符集。转换函数记录如下:
#include
#include
#include
#include
#define OUTLEN 255
main()
{
char *in_utf8 = "utf8字符串";
char *in_gb2312 = "\xbe\xb2\xcc\xac\xc4\xa3\xca\xbd";
char out[OUTLEN];
int rec ;
//unicode码转为gb2312码
rec = u2g(in_utf8,strlen(in_utf8),out,OUTLEN);
printf("unicode-->gb2312 out=%s\n",out);
//gb2312码转为unicode码
rec = g2u(in_gb2312,strlen(in_gb2312),out,OUTLEN);
printf("gb2312-->unicode out=%s \n",out);
}
//代码转换:从一种编码转为另一种编码
int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
{
iconv_t cd;
int rc;
char **pin = &inbuf;
char **pout = &outbuf;
cd = iconv_open(to_charset,from_charset);
if (cd==0) return -1;
memset(outbuf,0,outlen);
if (iconv(cd,pin,&inlen,pout,&outlen)==-1) return -1;
iconv_close(cd);
return 0;
}
//UNICODE码转为GB2312码
int u2g(char *inbuf,int inlen,char *outbuf,int outlen)
{
return code_convert("utf-8","gb2312",inbuf,inlen,outbuf,outlen);
}
//GB2312码转为UNICODE码
int g2u(char *inbuf,size_t inlen,char *outbuf,size_t outlen)
{
return code_convert("gb2312","utf-8",inbuf,inlen,outbuf,outlen);
}
Linux字符串转码utf8,Linux C/C++ 字符集转换,UTF-8,GB2312相关推荐
- linux python源码安装,linux上源码安装python
以下例子基于python 2.7.9,其他版本同理.# 1.下载python# wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tg ...
- linux内核源码漫游,Linux内核源代码漫游
Linux源代码,以帮助读者对源代码的体系结构以及很多相关的unix特性的实现有一个很好的理解.目标是帮助对Linux不甚了解的有经验的C程序员对整个Linux的设计有所了解.这也就是为什么内核漫游的 ...
- linux nat源码分析,Linux下NAT/NAPT规则源码分析
前面有一篇文章分析了为什么在PREROUTING做DNAT对本地连接不起作用?本文再紧接着上文,深入分析一下NAT/NAPT的规则. 事情的起因要从上的那篇的文章说起,因为我的本科生毕业设计也是做P2 ...
- Linux编译程序源码环境,Linux下对nodejs环境进行源码编译并部署云应用
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP.Python.Perl.Ruby 等服务端语言平起平坐的脚本语言. 该环境安装非常简单,这里 ...
- linux权限源码分析,Linux基础之文件权限详解
Linux中对于权限的制定虽然没有Windows的那么精细,但是如果你了解并掌握Linux中文件的权限知识,也可以像Windows那样对权限做到精确配置. Linux中的文件权限是什么? 如何查看Li ...
- linux top 源码,在Linux系统中下载源码包安装Topgrade的方法,附Topgrade选项说明
本文介绍在Linux操作系统中下载源码包安装Topgrade的方法,即下载topgrade-v2.3.0-x86_64-unknown-linux-gnu.tar.gz包并进行安装,经测试,在Ubun ...
- linux视频转码软件,Linux 下ffmpeg视频转码实战一安装
第一次接触ffmpeg这个软件,其实在我们的生活中他无处不在,由她制作的视频编辑播放软件有:QQ影音 射手播放器 等等.可以解析绝大部分的视频格式,转化成你想要的格式. 和ffmpeg一起的有三个软件 ...
- linux 远程控制 源码,基于Linux的远程控制技术服务端实现
远程控制系统的背景与需求分析 2.1 Linux平台下远程控制系统的产生 远程控制系统在现代社会有着越来越广泛的应用.远程控制中的嵌入技术.远程控制的数据处理与传输.远程控制的管理和远程控制的终端都取 ...
- linux lsof 源码分析,linux lsof详解
lsof全名list openedfiles,也就是列举系统中已经被打开的文件.我们都知道,linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件.所以,用好lsof命 ...
最新文章
- R语言ggplot2可视化:箱图(box plot)可视化并且在为箱图的异常值(outlier)添加数据标签
- vs2005 下的发邮件代码
- Mogees将手势识别技术运用于新产品
- rand生成随机数的范围_JS中生成指定范围随机数
- PLSQL_Database Link的基本概念和用法(概念)
- latex 小于_一份菜鸡的Latex课堂作业works--(ii)
- python多线程为什么要用队列_Python程序中的线程操作-线程队列
- 服务器进bios修改启动顺序,服务器进入bios设置u盘启动
- 计算机四级知识试卷答案,计算机四级考试试题及答案
- 二分图带权最大匹配费用流_简单理解二分图与匈牙利算法
- java字符串中的数据排序
- Web 组件完整介绍
- 不符合直接升级win11?教你怎么直接安装win11系统
- DSP TI6657 执行pdkProjectCreate.bat问题解决办法
- 【MySQL】DML,DQL
- 大学生需要云服务器吗?
- 转至老熊三分地--inside sqlplus prelim
- 深入理解LINUX内核 第三版2.6 笔记
- oracle em错误,em使用错误,求建议
- 鸿蒙之境法有三乘,神都夜行录
热门文章
- 双向循环链表涉及双向指针的基本操作(C语言)
- WPF中DatePiker值绑定以及精简查询
- vsync信号产生与分发
- Excel表格生成sql语句
- mysql腾讯面试题_2020腾讯阿里精选面试题100+(包含答案)
- joint和join_MySQL的JOIN(一):用法
- Python稳基修炼的经典案例8(计算机二级、初学者必须掌握的例题)
- seata分布式事务原理_又见分布式事务之Seata
- python下载以后在哪找_Python下载要保存到哪
- C语言 模拟实现 strlen strcat strcpy函数