我有一个函数,它得到一个wchar_t*
作为输入。现在在这个函数中我必须处理代码点。
由于这个程序应该在多个平台上运行,我对wchar_t*
.
我试图从wchar_t*
到char32_t*
via进行转换std::codecvt<char32_t, wchar_t, std::mbstate_t>
。可悲的是,这种专业化似乎并不存在。
然后我想我也许可以简单地将wchar_t*
用作只读输入缓冲区icu::UnicodeString
,但似乎我首先必须转换为UChar*
via u_strFromWCS
。但话又说回来,我首先需要分配一个UChar
缓冲区,其中包含正确数量的代码单元UChar
。
有人能告诉我在 a 中访问代码点的最有效方法wchar_t*
是什么吗?
例子:
如果我没记错的话,下面的示例应该使用每个代码点的两个代码单元。
const wchar_t *test = L"A 剝Ц B";