如题。我现在需要对使用UNICODE进行编码了的字符串进行解码,注意:我需要C语言形式的代码。谢谢~

解决方案 »

  1.   

    %u4E2D%u6587wchar_t wcFirst = 0x4e2d;
    wchar_t wcSecond = 0x6587;这样就解开了
      

  2.   

    new几个WCHAR 然后把 
    wchar[0]=0x4E2D
    wchar[1]=0x6587
    再把unicode转成ansi就行了。网上一堆一堆的代码,
    下面这个供参考 HRESULT __fastcall UnicodeToAnsi(LPCOLESTR pszW, LPSTR* ppszA)
    {    ULONG cbAnsi, cCharacters;
        DWORD dwError;    // If input is null then just return the same.
        if (pszW == NULL)
        {
            *ppszA = NULL;
            return NOERROR;
        }    cCharacters = wcslen(pszW)+1;
        // Determine number of bytes to be allocated for ANSI string. An
        // ANSI string can have at most 2 bytes per character (for Double
        // Byte Character Strings.)
        cbAnsi = cCharacters*2;    // Use of the OLE allocator is not required because the resultant
        // ANSI  string will never be passed to another COM component. You
        // can use your own allocator.
        *ppszA = (LPSTR) CoTaskMemAlloc(cbAnsi);
        if (NULL == *ppszA)
            return E_OUTOFMEMORY;    // Convert to ANSI.
        if (0 == WideCharToMultiByte(CP_ACP, 0, pszW, cCharacters, *ppszA,
                      cbAnsi, NULL, NULL))
        {
            dwError = GetLastError();
            CoTaskMemFree(*ppszA);
            *ppszA = NULL;
            return HRESULT_FROM_WIN32(dwError);
        }
        return NOERROR;}