wchar_t for Linux上的UTF-16?

5 c linux unicode wchar-t utf-16

wchar_t*在Linux 上存储使用UTF-16编码的文本是否有意义?显而易见的问题是wchar_tLinux上有四个字节,UTF-16通常每个字符需要两个(有时是两组)两个字节.

我正在尝试使用完全相同的第三方库,这似乎非常令人困惑.看起来事情搞砸了,因为在Windows上wchar_t是两个字节,但我只是想仔细检查,因为它是一个非常昂贵的商业库,可能我只是不明白的东西.

R..*_*R.. 7

虽然可以存储UTF-16 wchar_t,但是这些wchar_t值(或者它们用作字符串的数组)不适合用于任何带有wchar_t或指向wchar_t字符串的标准函数.因此,要回答你最初的问题"它是否有意义......?",我会回答一个明确的否定.uint16_t当然可以用于此目的,或者C11 char16_t如果可用,虽然我没有看到任何理由为什么后者会更好,除非你也将使用C11函数来处理它(它们似乎没有尚未实施).