我需要将string
转换为wchar_t
。我尝试了许多不同的方法,但是我在西里尔文字方面一直遇到问题。当使用wcout
进行调试时,我总是得到错误的输出,但是当仅使用拉丁字符时,不会出现任何问题。
那么如何将包含西里尔字母的string
转换为wchar_t
?
更新:
我发现了问题,使用wcout
进行调试时犯了一个错误,我一直都得到错误的输出。但是我手动重新检查了字符代码,它确实是UTF-16
。我不知道如何通过UTF-16
将正确的输出wcout
输出到控制台,但这对我来说并不重要。
最佳答案
首先,您还需要知道该库所需的wchar_t
大小。在不同的系统上可能是16位或32位。然后,您可以使用std::wstring_convert::from_bytes
。 This SO answer对您也可能有用。