Ven*_*emo 4 c++ unicode utf-16 icu node.js
我正在研究在本机Node.js模块中使用ICU进行Unicode字符串处理,因为在我看来v8::String(根据这些文档)没有用于此目的的C++ API.
据我所知,V8需要UTF-16 ExternalStringResource和其他API,所以我想使用ICU进行UTF-16处理.
我特别需要:
所以我查看了ICU文档并找到了UnicodeString和CharacterIterator类.但是,UnicodeString没有fromUTF16方法,只有fromUTF8和fromUTF32.
我不确定的另一件事是,UnicodeString构造函数是否复制了我给它的数据?我非常喜欢使用零拷贝方法,我只使用不可变对象,因此它不应该执行任何复制操作,只需使用我指向它的缓冲区.
我也不确定我是否可以使用UCharIterator(假设我可以以某种方式UChar*从我的UTF-16字符串转换).
所以我的问题是:我如何将ICU用于上述目的?
提前感谢您的回答!
UnicodeString默认情况下使用UTF-16进行存储.这就是为什么它只有fromUTF8和fromUTF32:从UTF-16开始没有转换.
它会复制数据.它是一个拥有的字符串,很像std::string.
UCharIterator如果您不想复制数据,则可以使用.UChar是一个16位的值.您可以通过定义UCHAR_TYPE宏来强制它为您喜欢使用的16位类型:
将UChar定义为UCHAR_TYPE,如果是#defined(例如,到char16_t),或者如果是16位宽则定义为wchar_t; 总是假设没有签名.
如果两者都不可用,则将UChar定义为uint16_t.
这使得UChar平台依赖的定义允许直接字符串类型与具有16位wchar_t类型的平台兼容.
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |