繁体   English   中英

如何正确使用MultiByteToWideChar

[英]How to properly use MultiByteToWideChar

我正在使用MultiByteToWideChar将我的字符串转换为wstring。 我首先尝试获得我的wstring所需的大小。 根据文档传递0作为最后一个参数应该完成这个。 使用MultiByteToWideChar(CP_UTF8, MB_COMPOSITE, str.c_str(), -1, nullptr, 0); 返回0作为wstring缓冲区的必需大小。 我已经验证str也是非空字符串。 我在这做错了什么?

MSDN文档

对于UTF-8或代码页54936(GB18030,从Windows Vista开始),dwFlags必须设置为0或MB_ERR_INVALID_CHARS。 否则,该函数将失败并显示ERROR_INVALID_FLAGS。

您正在使用CP_UTF8但也传递MB_COMPOSITE标志,这就是它失败的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM