谢健的专栏

记录学习的点滴.......加油,努力改变自己!

Linux C++ 字符串 编码识别

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

            在网上找到 libchardet这个库, 可以在这个页面下载,使用说明就算了,直接读头文件吧。

            http://libibase.googlecode.com/files/libchardet-0.0.4.tar.gz

           下面是一个简单的示例,

#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;  
}  

         其实就是网上找到的别人的一篇博客,http://blog.csdn.net/xian0617/article/details/6706107

         只是在这里记录一下,这个开源的库很强大,留着以后肯定会有用!

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xj178926426/article/details/6867118
个人分类: C/C++学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭