Welcome 微信登录

首页 / 操作系统 / Linux / 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. }  
Ubuntu 11.04通过ppa安装Gnome 3Linux下解决./configure ,make,make install的报错相关资讯      Linux教程 
  • Linux教程:如何在命令行中查看目  (07/28/2014 12:22:23)
  • Linux 修改root密码  (11/03/2012 07:53:38)
  • su - root 与su root的区别  (06/06/2012 00:39:40)
  • Linux进程间通信:消息队列  (01/28/2013 09:43:00)
  • U盘安装Linux开机无法启动解决方法  (10/07/2012 08:55:52)
  • Windows 7/Linux 同步时间  (05/15/2012 06:17:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数