我需要一段C++代码,将给定的字符串转换为UTF-16字符串。它必须在Windows和Linux上都能工作。我在搜索过程中查看了很多网页,但这个主题对我来说仍然不清楚。
据我所知,我需要:
1. 使用LC_TYPE和UTF-16编码调用setlocale。 2. 使用wcstombs将wchar_t转换为UTF-16字符串。 3. 调用setlocale以恢复先前的语言环境。
您知道如何以可移植的方式(Windows和Linux)将wchar_t*转换为UTF-16吗?
据我所知,我需要:
1. 使用LC_TYPE和UTF-16编码调用setlocale。 2. 使用wcstombs将wchar_t转换为UTF-16字符串。 3. 调用setlocale以恢复先前的语言环境。
您知道如何以可移植的方式(Windows和Linux)将wchar_t*转换为UTF-16吗?
wchar_t
字符串在哪个编码集中?你期望使用什么类型来表示 UTF-16 字符串中的字符类型?这只是在uint16_t
中 UTF-32(在wchar_t
中)和 UTF-16 之间的转换吗?还是涉及到代码集转换呢?可悲的是,可移植性是一个高尚的目标,但并非总是可以实现。请调查 ICU。 - Jonathan Leffler