把utf-8转换成gbk,
utf-8是用变长的字节表示汉字,gbk是用两个字节表示汉字(区位码表示)
应用:把utf-8转换成gbk,并取出区位码
#include
#include
#include
#include
#define MAXLEN 32000
int main(){
char * str="中";
char outstr[255];
char * out=outstr;
iconv_t cd;
cd=iconv_open("gbk","utf8");
int len,outlen;
len=strlen(str);
outlen=255;
printf("str len is :%d\n",len);
printf("outlen is %d\n",outlen);
if(cd==(iconv_t)-1){
printf("cd ==-1");
exit(-1);
}
printf("1\n");
size_t iconvre=iconv(cd,
( char **)&str , (size_t *)&len,
(char **) &out , (size_t *)&outlen );
if(iconvre==(size_t)-1){
iconv_close(cd);
printf("iconv ==-1");
exit(0);
}
printf("2\n");
iconv_close(cd);
printf("outstr is :%s\n",outstr);
printf("outstr len is:%d\n",strlen(outstr));
int i;
for( i=0;i<2;i+=2){
int pm=(unsigned char )outstr[i];
int wm=(unsigned char )outstr[i+1];
printf("pm is %d\n",pm);
printf("wm is %d\n",wm);
}
}
分享到:
相关推荐
linux C/c++ 源代码,将中文字串与UTF-8格式字串相互转化,我在项目中使用的代码,完全可用
发送中文短信,会用到UCS2编码,很多网友反应中文发送和接收乱码,这个烦恼可以解决了。 注意:要在系统配置里增加 LANG=zh_CN.GB18030 export LANG 语言配置不对,这个函数会出错的,另外,例子有点问题,换一个...
支持所有文本格式的文档(如 txt,js,css,java,c..),二进制或程序(如word,excel,exe文件)不要使用本转换工具,因为是JAVA程序 需要你的机器上已经安装了JDK 使用方法: 1,打开start.sh文件,windows用户把扩展名.sh...
基于Linux操作系统下 图像与BASE64编码互转,图像BASE64数据编码的加/解密
最近需要对Linux与Windows平台下的字符传输出现乱码,对字符编码作了深究。参考了网上的UTF-8/UTF-16转换的资料,只有0x10000以下的Unicode编码进行了转换;对其代码进行了修改和补充,可以实现所有的UTF-8/UTF-16的...
解决Source Insight 等中文乱码问题:在Linux下执行此脚本,可以将 utf-8 或 gkb 等编码文件(可任意添加) 转换为 gb18003(可任意修改为其他) 编码文件。 特点:此脚本会递归地转换所在目录及子目录下的所有 .c...
在LINUX系统下,并没有合适的INI文件读取函数。fearhacker因为工作需要写...该程序利用C语言编码,主要采用到的技术知识有,二维数组,二维数组指针,结构体,字符串指针,强制类型转换,动态内存的开辟、使用、销毁。
在Linux下有个iconv.h头文件,里面是对编码转换处理的封装。但在windows下是没有这个头文件的。这里有三个文件,高手编写,用在windows下:iconv.h,iconv.dll和iconv.lib,导出库,就可以用iconv.h了。用法与Linux下...
mac地址的byte和string间的转换java类
Unicode和中文的相互转换——VS2019的C++控制台项目(x64\x86\Debug\Release已编译) 1. bool ChineseToUnicode(CString cstr, string & str); 望断秋高和待雪初平__ChineseToUnicode:\u671b\u65ad\u79cb\u9ad8\u...
LINUX C函数库API 1.字符测试篇 15 1.1 15 isalnum(测试字符是否为英文或数字) 15 1.2 15 isalpha (测试字符是否为英文字母) 15 1.3 16 isascii(测试字符是否为ASCII 码字符) 16 1.4 17 iscntrl(测试字符是否...
Linux下字符编解码转换,支持unicode与utf8直接的相互转换,以及其他编码方式的相互直接转换。
操作系统:LInux、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信...
在VS2005下正常编译通过 UTF-8 TO UNICODE 相互转换C源码 UTF-8 TO GBK 相互转换C源码 GBK TO UNICODE 相互转换C源码
多字节与UTF-8、Unicode之间的转换 ,里面有相互转换的6个函数 ,稍微修改下可以加到自己的c++程序中,比较好用
GB2312与UTF-8互转程序,包含源代码,MAKEFILE,及最终库,百分百直接使用
首先,确定你的系统内码是中文编码,如GB2312,GBK。如果不清楚,请在终端下输入locale查看,不是就修改。这里,我提供在Suse下的修改方法:启动Yast2控制中心,打开“系统”——>“/etc/sysconfig编辑器”,展开...
Linux tcpdump命令 Linux tcpdump命令用于倾倒网络传输数据。 执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员。...-dd 把编译过的数据包编码转换成C语言的格式,并倾
由Red Hat Linux 8.0开始,UTF-8成为了系统预设的字元编码设定。这对於英语用户来说无甚影响,但当用到ISO/IEC 8859-1字元集的较高位置字元时,编码方式则完全不同。对於部分法语或瑞典语的用户来说,这是一个冒犯...
c ++ filt-过滤以解编码编码的C ++符号。 dlltool-创建用于构建和使用DLL的文件。 gold-一个新的,更快的,仅ELF的链接器,仍处于beta测试中。 gprof-显示分析信息。 nlmconv-将目标代码转换为NLM。 nm-列出...