请教怎么将utf-8转换成Unicode
发布时间:2010-05-30 20:18:25 文章来源:www.iduyao.cn 采编人员:星星草
请问如何将utf-8转换成Unicode
请问如何将utf-8转换成Unicode,这有一个方法,我没弄明白,使用后老死机或者重启:
int32 UTF8ToUnicode(const int8 *szSrc, int32 nSrcLen, wchar_t *strDest, int32 nDestLen)
{
int32 i=0;
int32 i_cur_output=0;
uint8 *pszSrc = (uint8 *)szSrc; /* cast to avoid signed/unsigned promomtion problems */
while ( i<nSrcLen )
{
if ( SIGMASK_3_1 <= pszSrc[i] ) /* 1st byte of 3 byte representation */
{
if ( i+2<nSrcLen && i_cur_output+1<nDestLen )
{
strDest[i_cur_output++] =(wchar_t)( (wchar_t)pszSrc[i] << 12 |
((wchar_t)pszSrc[i+1] & 0x3f) << 6 |
(wchar_t)pszSrc[i+2] & 0x3f);
i+=3;
}
else
{
return 0; /* ERROR_INSUFFICIENT_BUFFER */
}
}
else if ( SIGMASK_2_1 <= pszSrc[i] ) /* 1st byte of 2 byte representation */
{
if ( i+1<nSrcLen && i_cur_output+1<nDestLen )
{
strDest[i_cur_output++] = (wchar_t)(((wchar_t)pszSrc[i] & ~0xc0) << 6 |
((wchar_t)pszSrc[i+1] & ~0x80));
i+=2;
}
else
{
return 0; /* ERROR_INSUFFICIENT_BUFFER */
}
}
else /* Single byte representation */
{
if ( i<nSrcLen && i_cur_output+1<nDestLen )
{
strDest[i_cur_output++] = (wchar_t)pszSrc[i];
++i;
}
else
{
return 0; /* ERROR_INSUFFICIENT_BUFFER */
}
}
}
谢
------解决方案--------------------
不靠谱,windows mobile下用MultibyteToWideChar这个api,跨平台就用iconv库吧,这东西不要自己写
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
什么情况下应用会收到EVT_KEY_HOOK_XXX事件
最近调代码的时候,发现应用莫名其妙地收到了EVT_KEY_HOOK_XXX事件,而没有捕获到我真正...
-
怎么让数字转化成字符串?
我的程序,需在手机上显示一些记录的条数,这些条数不是固定的,视情况而定,我需要把记录的条数显示到手机...
-
如何获取基站CellID信息
RT
------解决方案--------------------
IPOSDET_GetSectorInfo这个接口...
-
文本的字体显示问题;和保存.txt时,在模拟器上保存成功,到真机上就保存失败,这是什么原因?
我资源管理里面加载的汉子是直接从网上下载...
-
BREW如何获取手机号码
BREW如何获取手机号码
------解决方案--------------------
如果在联网的时候使用了CTWAP的网关,可以从ht...
-
关于BREW里面的电池条问题?怎么才能知道这个电池条是否处于关闭或者打开的状态?
C/C++ code
HTC_SetAnn(pMe->a.m_pIDisplay,0);
...
-
我快崩溃了
切分一行两列的窗口时,左边的视图类是:(一个对话框资源,里面包含树形控件,同时为该对话框添加了一个类,但基类是CFormView)。...
-
关于BREW资源编辑器,里面加载的汉字的极限?
我用资源编辑器加载汉字,我大量的加载汉字,结果就出现问题。加载几百个汉字,模拟器上不会...
-
BREW里面的动画是怎么播放的?
我用了 高通SDK 下的 BCI软件编辑了个 4帧的动画,保存成.bci文件,然后通过资源管理器加载进去。
ISHEL...
-
急啊,求大侠啦!
各位大侠,小弟初学BREW MP,现在已安装BMP_SDKMP_7.10.12_ZHCN_SETUP,在VS 2010的工具栏里也有BMP的插件,但是为什么插...