一则C++Unicode集与多字节转换函数使用。

这函数,使用的是标准C函数。需要头文件cstdlib和clocale。针对中文的unicode写的函数。
         /// 将中文Unicode转换为Ansi多字节字符串
         /* *
            @param [out] paramDest 保存转换后的字符串
            @param [in] paramSource 原始的Unicode字符串
            @param [in] paramDestBytes 用于保存转换后字符串的内存字节数
            @return XInt 返回被转换后的字符个数(不含结尾0)
         
*/
        inline XInt ChineseUnicodeToMultByte(XChar 
*  paramDest,  const  XWideChar  *  paramSource, XInt paramDestBytes)
        {
            XChar pCurLocale[
50 ];
            StringCopy(pCurLocale,setlocale(LC_ALL,NULL),
49 );
            setlocale(LC_ALL,
" chs " );
            size_t iByteCount 
=  wcstombs(paramDest, paramSource, paramDestBytes);
            setlocale(LC_ALL, pCurLocale);
            
return  (XInt)iByteCount;
        }
        
/// 将中文Ansi多字节转换为Unicode字符串
         /* *
            @param [out] paramDest 保存转换后的字符串
            @param [in] paramSource 原始的Unicode字符串
            @param [in] paramDestBytes 用于保存转换后字符串的内存字节数
            @return XInt 返回被转换后的字符个数(不含结尾0)
         
*/
        inline XInt ChineseMultByteToUnicode(XWideChar 
*  paramDest,  const  XChar  *  paramSource,XInt paramDestByte)
        {
            setlocale(LC_ALL, 
" chs " ); 
            size_t iByteCount 
=  mbstowcs(paramDest, paramSource, paramDestByte);
            setlocale(LC_ALL,
" C " );
            
return  (XInt)iByteCount;
        }
这两个函数,已经融合到我的那个字符串XWideString和XAnsiString中,它这两个字符串相互转换非常容易。具体语言的参考,可以查看MSDN。
这两个函数算是对wcstombs和mbstowcs的一个使用例子吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值