我正在研究在本机 Node.js 模块中使用 ICU 进行 Unicode 字符串处理,因为在我看来v8::String
(根据这些文档)没有用于此目的的 C++ API。
据我所知,V8 需要 UTF-16ExternalStringResource
和其他 API,所以我想使用 ICU 进行 UTF-16 处理。
我特别需要:
- 遍历 UTF-16 字符串的字符(不仅仅是 16 位代码单元)
- 告诉 UTF-16 字符串包含的字符数(不仅仅是 16 位代码单元)
所以我查看了 ICU 文档并找到了UnicodeString
和CharacterIterator
类。但是,UnicodeString
没有fromUTF16
方法,只有fromUTF8
and fromUTF32
。
我不确定的另一件事是,UnicodeString
构造函数是否复制了我给它的数据?我非常喜欢使用零复制方法,我只使用不可变对象,因此它不应该执行任何复制操作,只需使用我指向的缓冲区。
我也不确定我是否可以使用UCharIterator
(假设我可以以某种方式UChar*
从我的 UTF-16 字符串转换)。
所以我的问题是:我如何将 ICU 用于上述目的?
提前感谢您的回答!