我正在尝试将字符串从ANSII转换为Wide char。我正在使用内部使用CA2W(string,CP_UTF8)
的{{1}}。
调试时显示MultiByteToWideChar
将°度符号转换为 。
有关如何解决此问题的任何建议?
答案 0 :(得分:0)
MultiByteToWideChar从给定编码转换为UTF-16(即宽字符)。您需要确保指定源的正确编码,该编码可能不是UTF-8。
由于UTF-8的编码方式,任何超过ASCII 0x7f的内容表明BYTE是多字节字符序列的一部分,除非正确指定该序列,否则将产生“?”。有关多字节序列编码的更多信息,请参见: http://en.wikipedia.org/wiki/UTF-8
基本上,您的源编码可能基于系统的当前代码页,因此您需要在调用MultiByteToWideChar时指定CP_ACP。