ASIIC转Unicode问题请教

abo77281 2010-05-17 01:24:12
做ASIIC转Unicode的code如下:


long n;
n = MultiByteToWideChar(CP_ACP,0,(char*)pBuf,dwSize,0,0);
pbuf1 = new WCHAR[n+2];
memset(pbuf1, 0, (dwSize+1)*sizeof(WCHAR));
pbuf1[0] = 0xfeff;
MultiByteToWideChar(CP_ACP,0,(char*)pBuf,dwSize,&pbuf1[1],n);

pBuf里面存的是从一个ASIIC编码的TXT文件读出的数据。

目前的问题是,这段代码在VC6.0上可以转换成功,但是在我的smart device上就不行,好像只能转换数字和字母,不能转换中文。

不知道哪位兄弟遇到过这种问题。

我在2416 Wince5.0 和 sirf A4 wince6.0这几个平台都有试过,都不成功。
...全文
114 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
abo77281 2010-05-18
  • 打赏
  • 举报
回复
谢谢各位回复,问题解决了。

mbstowcs(),wcstombs() 与 MultiByteToWideChar本身是没有问题的,问题在与os的default语言。
91program 2010-05-18
  • 打赏
  • 举报
回复
mbstowcs(),wcstombs() 与 MultiByteToWideChar 是一样的, 没有 LOCAL 的支持,也不可能成功的

一般中文系统, 应该是支持的, 如果还不行, 可以试试将第一个参数指定为: 936.
chen43030 2010-05-17
  • 打赏
  • 举报
回复
楼主,这是我在VS2005、WinCE6.0中使用的方法,你可以参考下:
CString ASCIIToUnicodeString(char * Str, int Length)
{
wchar_t *buff=new wchar_t[Length+1];
ZeroMemory(buff,Length+1);
int i = MultiByteToWideChar(CP_ACP, 0, Str, -1, buff, Length+1);
buff[i]=0;

CString strResult = buff;

delete [] buff;
buff = NULL;
return strResult;
}
abo77281 2010-05-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 papapa123123 的回复:]
呵呵。。推荐个简单的 何必这么麻烦呢。

mbstowcs(),wcstombs() 参数具体看MSDN,我就这么用很少用楼主的方式了。。
[/Quote]

好谢谢,我试下!
papapa123123 2010-05-17
  • 打赏
  • 举报
回复
呵呵。。推荐个简单的 何必这么麻烦呢。

mbstowcs(),wcstombs() 参数具体看MSDN,我就这么用很少用楼主的方式了。。
abo77281 2010-05-17
  • 打赏
  • 举报
回复
有没有做过的这方面的同仁?
abo77281 2010-05-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 91program 的回复:]
MultiByteToWideChar()第一个参数,多试试吧

还是就是CE系统,需要LOCAL的支持才可以的
[/Quote]


我第一参数试了好多遍,就是不行。
你说的这个local支持是什么意思?
是不是中文支持?
我的系统带有中文字库的。
91program 2010-05-17
  • 打赏
  • 举报
回复
MultiByteToWideChar()第一个参数,多试试吧

还是就是CE系统,需要LOCAL的支持才可以的

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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