【发布时间】:2012-03-30 15:09:03
【问题描述】:
我需要一个 C++ 代码来将wchar_t* 中给出的字符串转换为 UTF-16 字符串。它必须同时在 Windows 和 Linux 上运行。我在搜索过程中浏览了很多网页,但我仍然不清楚主题。
据我了解,我需要:
- 使用 LC_TYPE 和 UTF-16 编码调用
setlocale。 - 使用
wcstombs将wchar_t转换为UTF-16 字符串。 - 致电
setlocale恢复以前的语言环境。
你知道我可以通过什么方式将wchar_t* 以可移植的方式(Windows 和 Linux)转换为 UTF-16 吗?
【问题讨论】:
-
wchar_t字符串在哪个代码集中?您希望使用什么类型来表示 UTF-16 字符串中的字符类型?这仅仅是 UTF-32(在wchar_t中)和 UTF-16 在uint16_t中的转换吗?还是您也在处理代码集转换?可移植性是一个崇高的目标;可悲的是,这并不总是可以实现的。一定要调查ICU。
标签: c++ c unicode utf-16 wchar-t