MultiByteToWideChar困惑!!!!!!!!!!SOS!!!!!!!

msy2009   2008-7-17 16:36 楼主
MultiByteToWideChar(CP_UTF8,0,"ABCD",-1,outPutUtf16,512);   出错,outPutUtf16中内容为空
MultiByteToWideChar(CP_ACP,0,"ABCD",-1,outPutUtf16,512);    正确,outPutUtf16中内容为"ABCD"
为何 ? 我想是不是WinCe上不能识别CP_UTF8?
可是也有点牵强 ,因为我在一台手持设备上试 MultiByteToWideChar(CP_UTF8,0,"ABCD",-1,outPutUtf16,512)是正确的
但在另一台机上试就为空值,真是头晕啊 望高手指点一二

注 我已将代码量减到最少,可以排除其他地方的错误,问题就锁定在MultiByteToWideChar上

回复评论 (11)

看下返回值对不对,然后用GetLastError看下返回是不是0, 如果不是找相应的ERROR CODE,
点赞  2008-7-17 18:26
返回值是0, 相应的ERROR CODE是87,也就是ERROR_INVALID_PARAMETER  参数错
所以估计是CP_UTF8这个参数错了
但是必须要从UTF8转成UTF16啊 怎么办呢
点赞  2008-7-18 09:06
关于这个函数的使用,需要注意一些问题,LZ可以去我eeworld的Blog看看
点赞  2008-7-18 09:45
你说的和我的问题不是一个哦 ANSI下的字串我是成功转了的 只是UTF8的转失败了
点赞  2008-7-18 11:26
你在一台手持设备上测试是ok的。那你开始测试的环境呢?什么系统?
点赞  2008-7-18 13:53
都是WinCe5.0的环境
点赞  2008-7-18 17:10
系统没有添加CP_UTF8的codepage?
手头没有pb,无法确认
点赞  2008-7-19 00:45
我看了一下帮助,是不是你的wince低于5.0啊?

Microsoft Windows CE .NET
MultiByteToWideChar
Parameters
CodePage
[in] Specifies the code page to be used to perform the conversion. This parameter can be given the value of any code page that is installed or available in the system. You can also specify one of the following values: Value Description
CP_ACP ANSI code page
CP_MACCP Not supported
CP_OEMCP OEM code page
CP_SYMBOL Not supported
CP_THREAD_ACP Not supported
这个参数只有这么多!
Platform Builder for Microsoft Windows CE 5.0
MultiByteToWideChar
Parameters
CodePage
[in] The code page to be used to perform the conversion. This parameter can be given the value of any code page that is installed or available in the system.
You can also specify one of the values shown in the following table.

Value Description
CP_ACP ANSI code page
CP_MACCP Not supported
CP_OEMCP OEM code page
CP_SYMBOL Not supported
CP_THREAD_ACP Not supported
CP_UTF7 UTF-7 code page
CP_UTF8 UTF-8 code page
点赞  2008-7-19 09:00
引用: 引用 4 楼 dingdingcoding 的回复:
你说的和我的问题不是一个哦 ANSI下的字串我是成功转了的 只是UTF8的转失败了


问题可能是相通的,没有codepage会导致失败
点赞  2008-7-19 09:40
百分之百是因为没有codepage会导致
点赞  2008-9-4 09:43
可能是你在定制os的时候没有把CP_UTF8也定义进去
点赞  2008-9-4 09:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复