最近在用Qt做一个ftp客户端(其实qt的demo例子中就有一个简单的ftp客户端软件,只是功能太简单),由于客户端需要通用的话,要跟不同的ftp服务器相连,不同的服务器的编码格式可能不同,而在客户端要不中文乱码(英文不论是什么编码都可以正常显示的啦),就涉及到编码识别的问题。
下载 libchardet这个库,使用说明就算了,直接读头文件吧。
libchardet-0.0.4.tar.gz下载地址:
用户名与密码都是
具体下载目录在 /pub/2011/10/29/Linux C++ 字符串 编码识别/
下面是一个简单的示例,
#include "chardet.h" char out_encode[CHARDET_MAX_ENCODING_NAME] char * EncodeUtil::GetLocalEncoding(const char* in_str, unsigned int str_len, char* out_encode){ chardet_t chardect=NULL; if(chardet_create(&chardect)==CHARDET_RESULT_OK){ if(chardet_handle_data(chardect, in_str, (unsigned int)str_len) == CHARDET_RESULT_OK) if(chardet_data_end(chardect) == CHARDET_RESULT_OK) chardet_get_charset(chardect, out_encode, CHARDET_MAX_ENCODING_NAME); } if(chardect) chardet_destroy(chardect); return out_encode; }