我需要C++中的代码才能将wchar_t*
中给出的字符串转换为UTF-16字符串。它必须在Windows和Linux上均可工作。在搜索过程中,我浏览了很多网页,但是这个主题对我来说仍然不清楚。
据我了解,我需要:
setlocale
。 wcstombs
将wchar_t
转换为UTF-16字符串。 setlocale
恢复以前的语言环境。 您知道我可以通过便携式方式(Windows和Linux)将
wchar_t*
转换为UTF-16的方法吗? 最佳答案
在C++ 03中,没有单一的跨平台方法可以做到这一点(并非没有库)。部分原因是wchar_t
本身在各个平台上都不一样。在Windows下,wchar_t
是一个16位值,而在其他平台上,它通常是32位值。因此,您将需要两个不同的代码路径来执行此操作。