Chinaunix首页 | 论坛 | 博客
  • 博客访问: 863128
  • 博文数量: 149
  • 博客积分: 3671
  • 博客等级: 中校
  • 技术积分: 1701
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-03 16:52
文章分类

全部博文(149)

文章存档

2011年(57)

2010年(92)

分类: C/C++

2011-03-25 16:05:06

 

GBK转Unicode

//------------------------------------------------------------------------------------- 
//Description: 
// This function maps a character string to a wide-character (Unicode) string 
// 
//Parameters: 
// lpcszStr: [in] Pointer to the character string to be converted 
// lpwszStr: [out] Pointer to a buffer that receives the translated string. 
// dwSize: [in] Size of the buffer 
// 
//Return Values: 
// TRUE: Succeed 
// FALSE: Failed 
// 
//Example: 
// MByteToWChar(szA,szW,sizeof(szW)/sizeof(szW[0])); 
//--------------------------------------------------------------------------------------- 
BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize) 

    // Get the required size of the buffer that receives the Unicode 
    // string. 
    DWORD dwMinSize; 
    dwMinSize = MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, NULL, 0);

    if(dwSize < dwMinSize) 
    { 
        return FALSE; 
    }

    // Convert headers from ASCII to Unicode. 
    MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize);  
    return TRUE; 
}

 

Unicode转GBK

//------------------------------------------------------------------------------------- 
//Description: 
// This function maps a wide-character string to a new character string 
// 
//Parameters: 
// lpcwszStr: [in] Pointer to the character string to be converted 
// lpszStr: [out] Pointer to a buffer that receives the translated string. 
// dwSize: [in] Size of the buffer 
// 
//Return Values: 
// TRUE: Succeed 
// FALSE: Failed 
// 
//Example: 
// MByteToWChar(szW,szA,sizeof(szA)/sizeof(szA[0])); 
//--------------------------------------------------------------------------------------- 
BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize) 

    DWORD dwMinSize; 
    dwMinSize = WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, NULL, 0, NULL, FALSE); 
    if(dwSize < dwMinSize) 
    { 
        return FALSE; 
    } 
    WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, lpszStr, dwSize, NULL, FALSE); 
    return TRUE; 
}

阅读(8923) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~