C implémentation de la conversion entre le codage de caractères utf-8 et gb2312

Conversion entre le codage de caractères utf-8 et gb2312

Requête le codage des caractères Interrogation du codage du jeu de caractères Kanji

Le gb2312 utilisé par l'émetteur et le récepteur entre les appareils, par exemple, le mot "Zhao" est codé comme (D4E7), et le fichier txt téléchargé depuis le réseau est codé comme utf-8.
Afin de comparer les deux types de fichiers, il doit être converti en un encodage unifié. Ici, utf -8 est converti en gb2312

Implémentation C

//代码转换:从一种编码转为另一种编码   
static int   code_convert(char * from_charset, char * to_charset, char * inbuf, size_t inlen, char * outbuf, size_t outlen)   
{
    
       
    iconv_t   cd;   
    char **pin   =   &inbuf;   
    char **pout   =   &outbuf;   
    int ret ;

    cd   =   iconv_open(to_charset, from_charset);   

    if(cd == (iconv_t)-1)   
    {
    
    
        perror("open iconv_open failed");
        return   -1;
    }
    memset(outbuf,0,outlen); 
    ret = iconv(cd, (char **)pin, &inlen, (char **)pout, &outlen);

    if( ret < 0)   
    {
    
    
        perror("iconv  failed"); 
        iconv_close(cd); /*by zyy*/
        return   -1;
    }
    iconv_close(cd);   
    return   0;   
} 

/*UTF-8 码转为GB2312码*/   
static int   u2g(char  *inbuf, size_t   inlen, char  *outbuf, size_t   outlen)   
{
    
       
    int ret;
    ret =code_convert("UTF-8","GBK//IGNORE",inbuf,inlen,outbuf,outlen);   
    return ret;
}  

Je suppose que tu aimes

Origine blog.csdn.net/WANGYONGZIXUE/article/details/106614090
conseillé
Classement