linux 字符串编码转换

 

复制代码
 1 #include <iconv.h>
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 #include <string.h>
 5 
 6 //*****************************************************************
 7 #define buf_length 128
 8 # define UTF_8 "utf-8"
 9 #define GB2312  "gb2312"
10 //*****************************************************************
11 int code_convert_process(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen){
12     iconv_t cd;
13     int rc;
14     char **pin = &inbuf;
15     char **pout = &outbuf;
16     cd = iconv_open(to_charset,from_charset);
17     if (cd==0) return -1;
18     memset(outbuf,0,outlen);
19     if (iconv(cd,pin,&inlen,pout,&outlen)==-1) return -1;
20     iconv_close(cd);
21     return 0;
22 }
23 
24 #define UTF8_to_GB3212(in_buf,in_len,out_buf,out_len)   code_convert_process(UTF_8,GB2312,in_buf,in_len,out_buf,out_len)
25 #define GB3212_to_UTF8(in_buf,in_len,out_buf,out_len)   code_convert_process(GB2312,UTF_8,in_buf,in_len,out_buf,out_len)
26 //*****************************************************************
27 int main(void){
28     char in_buf[buf_length] = "jikexianfeng@极客先锋";
29     char out_buf[buf_length];
30     UTF8_to_GB3212(in_buf,strlen(in_buf),out_buf,buf_length);
31     //GB3212_to_UTF8(in_buf,strlen(in_buf),out_buf,buf_length);
32 
33   return 0;
34 }
复制代码

 

posted @   极客先锋  阅读(590)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示