0
在我的一个项目中,我需要在Windows C++中支持UTF-8。宽字符到多字节问题
当前代码使用的是wcstombs
,其中中文语言没有正确转换。我用WideCharToMultiByte
替换wcstombs
。经过测试,在Windows 7和Windows XP SP3中,我可以正常工作。
但是在旧机器之一中安装了Windows XP SP3中的中文或CZech语言包。我了解这也会影响注册表。那里的应用程序行为有所不同。
当我用wcstombs
做opertator重载的时候<<
它的工作正常。当我使用WideCharToMultiByte
时,它的效果与预期不符。
没有更改注册表设置(安装语言包),WideCharToMultiByte
工作正常。
我正确地认为语言包安装会影响注册表更改,从而影响此行为吗?请帮助我了解是否还有其他可能会影响行为的事情。
你确定WideCharToMultiByte没有返回一个字节数组吗?如果是这种情况,那么它可能以某种方式与二进制移位运算符混淆(也是'<<') – MiltoxBeyond 2014-10-31 07:08:35