MultiByteToWideChar(CP_ACP 要转成在linux下运行,使用iconv函数,转换前字符集和转换後字符集参数应该填什么?
by didida1975 - C/C++ - 2007-07-11 17:27:36 阅读(9244) 回复(3)
因为不是在电脑cpu上跑的程序,代码需要在其他设备中跑,设备中没有MultiByteToWideChar,所以需要实现类似MultiByteToWideChar的功能。只要考虑ANSI 0~127 的字符加上gb2312中文就好, utf-8等其他编码都不考虑。 MultiByteToWideChar的源码过于复杂看不懂(reactos里),所以想找个替代函数,并且是有源码的。于是找到了 mbstowcs,但测试结果不一样。下面是测试代码:[code]#include
[code] //unsigned char str[4]={0xAA,0x01,0x38,0}; unsigned char str[4]={0x7A,0x01,0x38,0}; len=MultiByteToWideChar(CP_ACP,0,str,-1,0,0);[/code]由于数组中的第一个元素值不同,而MultiByteToWideChar的返回值就不同了(返回值分别为3和4),我想返回4应该是正确的,但由于第一个元素值不同而导致返回值不同,这是为什么? 我测试了一下,将第一个元素分别改为0x8A,0x9A,0xAA...返回值都为3;其中原因是什么?
受影响系统: VMWare VMWare Workstation 6.0.2 VMWare VMWare Workstation 5.5.4 VMWare ACE 2.0.2 VMWare ACE 1.0.2 VMWare Player 2.0.2 VMWare Player 1.0.4 描述: VMWare是一款虚拟PC软件,允许在一台机器上同时运行两个或多个Windows、DOS、LINUX系统。 VMware的共享文件夹机制实现上存在目录遍历漏洞,运行于Guest系统上的程序可以利用此漏洞访问到Host系统的文件。 VMware的共享文件夹允许用户在Guest和Host系统之...
最近在做网络编程,服务器端是VC开发的,返回的编码格式是ascii编码,但java只支持unicode编码,所以中文字符都显示为乱码。找了不少资料,都只有C++里的编码转换方法,用到的是windows提供的winAPI里的MultiByteToWideChar函数。请问哪位大大在JAVA中如何实现这一方法么?
文件1 aa bb cc dd 文件2 >aa chinese >dd american >ff russian 结果: >aa chinese >dd american 我想通过文件1和文件2得到结果,应在在linux下怎么实现呢