请问各位老大:UCS2码怎么转化为GB2312码?急!!

jeam0402 2005-12-19 04:57:00
请问各位老大:UCS2码怎么转化为GB2312码?
有个char temp[100],是USC2码的,请问各位高手高手高高手怎么把它转化为GB2312码?急啊
...全文
195 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeam0402 2006-02-23
  • 打赏
  • 举报
回复
不好意思,由于别的事情这个搁置了一段时间,iamknight好象可以,测试了几个都没问题,谢谢了!俺是个新手,特别感谢你能给这么详细的代码!
iamknight 2005-12-20
  • 打赏
  • 举报
回复
/*****************************************************************************
* Class : Global Function
* Function : to_MultiByte
* Description: 把Unicode转换成多字节
* Parameters : char* strSM --要转换的Unicode缓冲
* int nLength -- Unicode缓冲的长度
* Return : 转换后的多字节字串
* Input :
* Output :
* History : Created by Rongdian Monday, April 29, 2002 11:03:15
* Process :
******************************************************************************/
CString to_MultiByte(char* strSM, int nLength){
UINT nLen = 0;
PBYTE lpszM;
PBYTE lpszW = new BYTE[nLength];
memcpy(lpszW, strSM, nLength);

for(int i = 0; i < nLength/2; i++)
*((unsigned short*)lpszW + i) = ntohs(*((unsigned short*)lpszW + i));

nLen = WideCharToMultiByte(936, WC_COMPOSITECHECK,
(const unsigned short*)lpszW, nLength/2, NULL, 0, NULL, NULL);

lpszM = new BYTE[nLen+1];

nLen = WideCharToMultiByte(936, WC_COMPOSITECHECK,
(const unsigned short*)lpszW, nLength/2, (char*)lpszM, nLen, NULL, NULL);

lpszM[nLen] = 0;
CString csSM((LPCTSTR)lpszM, nLen);
delete lpszM;
delete lpszW;
return csSM;
}
thisisll 2005-12-19
  • 打赏
  • 举报
回复
widebytetomultibyte

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧