0

我正在尝试将字符串从 ANSII 转换为 Wide char。我正在使用CA2W(string,CP_UTF8)which 内部使用MultiByteToWideChar.

调试时显示MultiByteToWideChar将°度符号转换为�。

关于如何解决这个问题的任何建议?

4

1 回答 1

0

MultiByteToWideChar 从给定的编码转换为 UTF-16(即宽字符)。您需要确保指定正确的源编码,这可能不是 UTF-8。

由于 UTF-8 的编码方式,任何超过 ASCII 0x7f 的内容都表明 BYTE 是多字节字符序列的一部分,除非正确指定该序列,否则将导致“?”。更多关于多字节序列编码的信息可以在这里找到: http ://en.wikipedia.org/wiki/UTF-8

基本上,您的源编码可能基于系统当前的代码页,因此您需要在调用 MultiByteToWideChar 时指定 CP_ACP。

于 2012-09-18T09:43:22.247 回答