中文简体(GBK)与繁体(BIG5)的转换

©2005 黄友生。本文由原作者发布于MSN Space、CSDN。你可以保存、在非商业软件中使用、在非盈利性文章中引用本文中的部分或全部文字,但请注明作者及原文地址。要用于其它用途,请先联系作者( eien@eyou.com )。作者不保证本文完全正确无误、不对因本文中的理论或代码缺陷造成的损失负责。
 
在CSDN上碰到有人问到这个问题,于是整理一下,存档。以下代码需要 Windows NT 4.0 以上,不支持Windows 9x。编译环境为非UNICODE。
 
char  szGBK[128] = "中华人民共和国";
WCHAR wszUnicode1[128];
WCHAR wszUnicode2[128];
char  szBig5[128];
// GBK -> UNICODE
int iLen = MultiByteToWideChar( 936, 0, szGBK, strlen( szGBK ), wszUnicode1, 128 );
 
// 把简体字形转换成繁体字形(华->華)
LCMapStringW( MAKELCID( MAKELANGID( LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED ), SORT_CHINESE_PRCP ), LCMAP_TRADITIONAL_CHINESE, wszUnicode1, iLen, wszUnicode2, 128 );
 
// UNICODE -> BIG5
iLen = WideCharToMultiByte( 950, 0, wszUnicode2, iLen, szBig5, 128, NULL, NULL );
FILE* fp = fopen( "c://test.htm", "wb" );
if( fp != NULL )
{
    fwrite( szBig5, 1, iLen, fp );
    fclose( fp );
}

用浏览器打开c:/test.htm, 选择浏览器的编码为 BIG5,即可看到字符串的繁体版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值