2022年4月7日 星期四

[C++]中文Ansi轉UTF8 互相轉換

VS預設文字為ANSI

使用Cstring 帶入

void ConvertCStringToUTF8(CString strValue,char* Result)
{
    char pData[9999] = {};
    USES_CONVERSION;
    strcpy(Result, T2A((LPTSTR)(LPCTSTR)(strValue)));

    /* 獲取轉換後長度 */
    int length = WideCharToMultiByte(CP_UTF8, 0, strValue, -1, NULL, 0, NULL, NULL);
    /* 獲取轉換後內容 */
    WideCharToMultiByte(CP_UTF8, 0, strValue, -1,
        (LPSTR)(Result), length, NULL, NULL);
}

void ConvertUTF8toANSI(char* strUTF8, CString* Result)
{
   
    /* 獲取轉換後長度 */
    int length = MultiByteToWideChar(CP_UTF8, NULL, (LPSTR)(strUTF8), -1, NULL, NULL);
    char szBuff[999] = {};
    /* 獲取轉換後內容 */
    MultiByteToWideChar(CP_UTF8, NULL, (LPSTR)(strUTF8), -1, (LPWSTR)szBuff, length);
    Result->Format(L"%s", szBuff);

}

沒有留言:

張貼留言

[SQL]顯示千分位與小數顯示

  CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CONVERT style參數說明 1  (expression為 money 或 smallmoney型別): 0 : 預設,保留小數位後兩位,並四捨...