Linux C++ 字符串 编码识别


最近在用Qt做一个ftp客户端(其实qt的demo例子中就有一个简单的ftp客户端软件,只是功能太简单),由于客户端需要通用的话,要跟不同的ftp服务器相连,不同的服务器的编码格式可能不同,而在客户端要不中文乱码(英文不论是什么编码都可以正常显示的啦),就涉及到编码识别的问题。

下载 libchardet这个库,使用说明就算了,直接读头文件吧。

libchardet-0.0.4.tar.gz下载地址:

免费下载地址在 http://linux.bkjia.com/

用户名与密码都是www.bkjia.com

具体下载目录在 /pub/2011/10/29/Linux C++ 字符串 编码识别/

下面是一个简单的示例,

  1. #include "chardet.h"     
  2. char out_encode[CHARDET_MAX_ENCODING_NAME]    
  3.     
  4. char * EncodeUtil::GetLocalEncoding(const char* in_str, unsigned int str_len, char* out_encode){    
  5.     chardet_t chardect=NULL;    
  6.     if(chardet_create(&chardect)==CHARDET_RESULT_OK){    
  7.         if(chardet_handle_data(chardect, in_str, (unsigned int)str_len) == CHARDET_RESULT_OK)    
  8.             if(chardet_data_end(chardect) == CHARDET_RESULT_OK)    
  9.                 chardet_get_charset(chardect, out_encode, CHARDET_MAX_ENCODING_NAME);    
  10.     }    
  11.     if(chardect)    
  12.         chardet_destroy(chardect);    
  13.     return out_encode;    
  14. }    

更多参考见

  • 1
  • 2
  • 下一页

相关内容