感谢支持
我们一直在努力

Linux下转换charset

Linux下转charset,由于不知道utf8一个字符有多长,所以不知道转换后的串有多长,开大缓冲是一个办法,但是如果输入太大并且并发较高的话有占用内存太大的问题。方案暂时折中为对文件采用命令转换,消息采用大缓冲方式iconv()来转换。不敢全部用命令,开销大。 



  1. //utf8文件转为gb2312文件   

  2. int utf8_to_gb2312_file(char* szUtf8FileName,char* szGb2312FileName)   

  3. {   

  4.  if(szUtf8FileName==NULL || szGb2312FileName==NULL)   

  5.  {   

  6.   return -1;   

  7.  }   

  8.  char szCommand[1024]={0};   

  9.  sprintf(szCommand,“iconv -f utf8 -t gb2312 %s | cat > %s”,szUtf8FileName,szGb2312FileName);   

  10.  return system(szCommand);   

  11. }   

  12.   

  13. //gb2312文件转为utf8文件   

  14. int gb2312_to_utf8_file(char* szGb2312FileName,char* szUtf8FileName)   

  15. {   

  16.  if(szGb2312FileName==NULL || szUtf8FileName==NULL)   

  17.  {   

  18.   return -1;   

  19.  }   

  20.  char szCommand[1024]={0};   

  21.  sprintf(szCommand,“iconv -f gb2312 -t utf8 %s | cat > %s”,szGb2312FileName,szUtf8FileName);   

  22.  return system(szCommand);   

  23. }  

赞(0) 打赏
转载请注明出处:服务器评测 » Linux下转换charset
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏