歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下轉換charset

Linux下轉換charset

日期:2017/2/28 16:18:11   编辑:Linux教程

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. //gb2312文件轉為utf8文件
  13. int gb2312_to_utf8_file(char* szGb2312FileName,char* szUtf8FileName)
  14. {
  15. if(szGb2312FileName==NULL || szUtf8FileName==NULL)
  16. {
  17. return -1;
  18. }
  19. char szCommand[1024]={0};
  20. sprintf(szCommand,"iconv -f gb2312 -t utf8 %s | cat > %s",szGb2312FileName,szUtf8FileName);
  21. return system(szCommand);
  22. }
Copyright © Linux教程網 All Rights Reserved