字符集(编码)转换_Linux
ZC: 来自 我的项目 czgj
1、代码:
#include <stdio.h>
#include <iconv.h>
#include <string.h> //#pragma comment(lib, "iconv.lib") // ZC: 改放到 .pro文件中“LIBS += -liconv”
/*
//此函数说明将要进行哪两种编码的转换,tocode是目标编码,fromcode是原编码,该函数返回一个转换句柄,供以下两个函数使用。
(1) iconv_t iconv_open(const char *tocode, const char *fromcode); //此函数从inbuf中读取字符,转换后输出到outbuf中,inbytesleft用以记录还未转换的字符数,outbytesleft用以记录输出缓冲的剩余空间。
(2) size_t iconv(iconv_t cd,char **inbuf,size_t *inbytesleft,char **outbuf,size_t *outbytesleft); //此函数用于关闭转换句柄,释放资源。
(3) int iconv_close(iconv_t cd);
*/ // - - - - - - - 以下是在Linux上实现的字符集转换函数
//int code_convert(char *from_charset,char *to_charset,const char *inbuf, size_t inlen,char *outbuf, size_t outlen)
int code_convert(char *from_charset,char *to_charset, char *inbuf, size_t inlen,char *outbuf, size_t outlen)
{
iconv_t cd;
//const char **pin = &inbuf;
char **pin = &inbuf;
char **pout = &outbuf; cd = iconv_open(to_charset,from_charset);
if (cd==) return -;
memset(outbuf,,outlen);
if (iconv(cd, pin, &inlen,pout, &outlen)==((size_t)-))
return -;
iconv_close(cd);
return ;
} /* UTF-8 to UTF-16 */
//int u2g(const char *inbuf, size_t inlen, char *outbuf, size_t outlen)
int u2g(char *inbuf, size_t inlen, char *outbuf, size_t outlen)
{
return code_convert("UTF-8","UTF-16",inbuf,inlen,outbuf,outlen);
} /* UTF-16 to UTF-8 */
//int g2u(const char *inbuf, size_t inlen, char *outbuf, size_t outlen)
int g2u(char *inbuf, size_t inlen, char *outbuf, size_t outlen)
{
return code_convert("UTF-16", "UTF-8", inbuf, inlen, outbuf, outlen);
}
// - - - - - - - 以上是在Linux上实现的字符集转换函数
2、
字符集(编码)转换_Linux的更多相关文章
- 字符集(编码)转换_Qt532_QString
1.网上的资料: 1.1.参考网址:http://blog.csdn.net/changsheng230/article/details/6588447 1.2.网页内容: “ Qt 使用Unicod ...
- 字符集(编码)转换_Windows
ZC: 来自 我的项目 czgj ZC: (1).经过测试 MultiByteToWideChar(...) 返回的是 (需要的)WideChar[宽字符]的个数:(2).WideCharToMult ...
- 关于JS的编码转换问题
在进行JS开发过程中,尤其是在开发报表时,报表已集成到Web页面中,通过在页面传递参数至报表中时,会发现有时某些参数值,传递到报表中是显示为问号或乱码等等一系列不能正常显示的情况. 这是由于浏览器和报 ...
- 帆软报表FineReport数据库连接编码转换
1. 问题描述 数据库会以某种编码方式保存与读取数据,FineReport解析时默认使用GBK字符集,若数据库端编码与设计器端编码不一致时,就会导致中文及特殊字符的乱码. FineReport在定义数 ...
- java Unicode、ISO-8859-1、GBK、UTF-8编码转换深入浅出
参考文献:搞懂ASCII, ISO8859-1, ANSI和Unicode Unicode百度文献 ISO-8859-1百度文献 注: 1.utf-8虽然是国际编码,对不同范围的字符使用不同长度的编码 ...
- Base64的编码转换方式
下面,详细介绍Base64的编码转换方式. 所谓Base64,就是说选出64个字符----小写字母a-z.大写字母A-Z.数字0-9.符号"+"."/"(再加上 ...
- 各种编码中汉字所占字节数;中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
vim settings set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936,latin1set termencoding=utf-8se ...
- 理解perl的编码转换——utf8以及乱码
工作需要,闲暇之余,仔细研究了一下脚本乱码的问题 1. vim新建的文件 1)在linux命令行 vim命令建立的文件,如果内容中不出现中文,默认是ASCII.那么用notepad++打开的时候,就是 ...
- iconv字符编码转换
转自 http://blog.csdn.net/langresser_king/article/details/7459367 iconv(http://www.gnu.org/software/li ...
随机推荐
- ps中的栅格化--引出--矢量图
矢量图使用直线和曲线来描述图形,这些图形的元素是一些点.线.矩形.多边形.圆和弧线等等,它们都是通过数学公式计算获得的.例如一幅花的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色 ...
- win10安装后耳机有声音而外放无声音
安装win10后耳机声音正常,而外放没声音.检查了小喇叭.播放器和设备管理器一切正常,驱动也重装了好些次.喇叭音量设置.视频音量设置均正常.花费很多时间,结果发现是键盘上有个小喇叭+的键的问题.按fn ...
- owl.carousel
简介 Owl Carousel 是一个强大.实用但小巧的 jQuery 幻灯片插件,它具有一下特点: 兼容所有浏览器 支持响应式 支持 CSS3 过度 支持触摸事件 支持 JSON 及自定义 JSON ...
- Intro to Python for Data Science Learning 8 - NumPy: Basic Statistics
NumPy: Basic Statistics from:https://campus.datacamp.com/courses/intro-to-python-for-data-science/ch ...
- python 元组 序列上使用enumerate()函数
不能直接for n,x,y in enumerate(data)
- Python2 简明教程
Python 由 Guido Van Rossum 在90年代初创建. 它现在是最流行的语言之一 我喜爱python是因为它有极为清晰的语法,甚至可以说,它就是可以执行的伪代码. 注意: 这篇文章针对 ...
- Linux基础命令---resizefs
resize2fs 调整ext2\ext3\ext4文件系统的大小,它可以放大或者缩小没有挂载的文件系统的大小.如果文件系统已经挂载,它可以扩大文件系统的大小,前提是内核支持在线调整大小. size参 ...
- 【CSS3】纯CSS代码实现模拟时钟,+js对时功能。
使用CSS3纯代码来实现模拟时钟,及指针动画功能. 在这里主要使用到css3一些基本元素: border-radius:圆角边框,画圆形:表盘 Transform:变换,旋转,扭曲:刻度盘,指针形状 ...
- OAuth : open Authorization 开发授权
OAuth : open Authorization 开发授权 用户访问慕课网,慕课网请求OAuth登陆页面,用户输入QQ号码和密码,这个页面的域名不属于慕课网是属于QQ的,随后把结果给慕课网,这个结 ...
- 手撕vue-cli配置——webpack.base.conf.js篇
在开始写webpack.base.conf.js(简称base)之前,我们先来看一下vue-loader.conf.js这个文件,毕竟在base中我们还会用到: 'use strict' //引入前一 ...