c/c++中国語文字列回転UnicodeとUTF 8

2204 ワード

1.説明
Windowsでシステムプログラミングをすると、中国語の文字列を処理する問題が少なくありません.多くの場合、中国語の漢字はマルチバイト符号化で表現されている.Webページに表示されるなど、より良い互換性や特別なニーズを実現するためには、unicodeまたはutf 8のフォーマットに変換する必要があります.
2.コード例
2.1中国語文字列変換Unicode
/************************************************************************
*int CN2Unicode(char *input,wchar_t *output)
*  :       unicode  
*  :input,        ,output,Unicode   
*
*************************************************************************/
int CN2Unicode(char *input,wchar_t *output)
{
    int len = strlen(input);

    //wchar_t *out = (wchar_t *) malloc(len*sizeof(wchar_t));

    len=MultiByteToWideChar(CP_ACP,0,input,-1,output,MAX_PATH);

    return 1;
}

2.2中国語文字列回転utf 8
/************************************************************************
*int CN2Utf8(char *input,char *output)
*  :        utf8   
*  :input,        ,output,utf8   
*
************************************************************************/
int CN2Utf8(char *input,char *output)
{
    int len ;
    wchar_t *out = (wchar_t *) malloc(len*sizeof(wchar_t));

    len = MultiByteToWideChar(CP_ACP,0,input,-1,out,strlen(input)+1);
    WideCharToMultiByte(CP_UTF8,0,out,wcslen(out),output,len,NULL,NULL);

    return 1;
}