Linux C++ 字符串 编码识别
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++ 字符串 编码识别/
下面是一个简单的示例,
- #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;
- }
更多参考见
|
评论暂时关闭