GBK下的简繁体转换

//注:GB2312是GBK字符集中的子集,是GBK中的简体子集;而GBK包含了简体,繁体及其他特殊符号;

//Big5是不同于GBK的繁体字库编码表

//关键转换函数:LCMapString

 

 

 

//GBK繁体 --> GB2312简体(GBK简体)

 

void CStatisticsDlg::OnBnClickedButtonLpt2lps()

{

CString strSrc;

GetDlgItemText(IDC_EDIT_LPT2LPS, strSrc); //得到strSrc:中國共產黨

 

if (strSrc.IsEmpty())

return ;

 

//如果字符集来源是ASCII等其他转换方法时,获取应分配内存的大小时或许也可以使用MultiByteToWideChar 函数

DWORD wLCID = MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_PRC/*SORT_CHINESE_BIG5*/); //最后一个参数也可用SORT_CHINESE_PRCP

int nLength = LCMapString(wLCID, LCMAP_SIMPLIFIED_CHINESE, strSrc, strSrc.GetLength(), NULL, 0); //获取应分配内存的个数

if (!nLength)

return ;

 

TCHAR *tchDest = new TCHAR[nLength + 1];

memset(tchDest, 0, (nLength + 1) * sizeof(TCHAR));

{

LCMapString(wLCID, LCMAP_SIMPLIFIED_CHINESE, strSrc, strSrc.GetLength(), tchDest, nLength + 1); //转换

 

CString strTemp(tchDest);

strTemp = strSrc + _T("/r/n") + strTemp;

SetDlgItemText(IDC_EDIT_LPT2LPS, strTemp);

}

 

delete []tchDest;

}

 

 

 

//GBK简体转换为GBK繁体:

只需将上面的代码中LCMapString函数的参数LCMAP_SIMPLIFIED_CHINESE改为LCMAP_TRADITIONAL_CHINESE即可,注意MAKELANGID中的参数SUBLANG_CHINESE_SIMPLIFIED不要改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值