我将最初只支持Windows的代码移植到跨平台友好的代码中;一个特别的障碍是试图将对Windows Unicode函数"GetMultiByteString“(以及任何相关函数)的调用转换为更可移植的基于wchar的函数。我使用wchar的成功很少,因为在尝试迭代Unicode字符串时,使用wchar会导致循环提前终止。
使用wchar替换GetMultiByteString和任何其他相关Unicode函数的正确方式是什么?
发布于 2010-07-26 20:13:26
在这里,您正在尝试将苹果转换为橙子。MultiByteToWideChar和WideCharToMultiByte之间的转换特定的编码,UTF-16 <->各种其他编码,包括美国国家标准。
3个问题:
简而言之,除非您自己编写代码进行编码,否则没有完全可移植的方法来处理这类事情。
如果你想成为可移植的,你需要定义一个类型定义或者其他的东西,这样你的应用程序就可以在windows上使用wchar_t,而在其他所有东西上使用char。然后,您必须假设在Windows计算机上使用UTF-16,在unix计算机上使用UTF-8。
或者:你必须使用一个库,比如ICU。
https://stackoverflow.com/questions/3338551
复制相似问题