Implementación en C de la conversión entre codificación de caracteres utf-8 y gb2312

Conversión entre codificación de caracteres utf-8 y gb2312

Consultas codificación de caracteres Consulta de codificación de conjuntos de caracteres kanji

El gb2312 utilizado por el transmisor y el receptor entre los dispositivos, por ejemplo, la palabra "Zhao" se codifica como (D4E7), y el archivo txt descargado de la red se codifica como utf-8.
Para comparar los dos tipos de archivos, debe convertirse a una codificación unificada. Aquí, utf -8 se convierte a gb2312

Implementación de 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;
}  

Supongo que te gusta

Origin blog.csdn.net/WANGYONGZIXUE/article/details/106614090
Recomendado
Clasificación