v8::String
(これらのドキュメントによると)この目的のためのC++ APIがないように思われるため、ネイティブNode.jsモジュールでのUnicode文字列処理にICUを使用することを検討しています。
私の知る限り、V8 は inExternalStringResource
およびその他の API で UTF-16 を想定しているため、UTF-16 処理には ICU を使用したいと考えています。
私は特にする必要があります:
- UTF-16 文字列の文字 (16 ビット コード単位だけでなく) を反復処理する
- UTF-16 文字列に含まれる文字数 (16 ビット コード単位だけでなく) を伝える
そこで、ICU のドキュメントを調べたところ、UnicodeString
とCharacterIterator
クラスが見つかりました。ただし、メソッドはなくUnicodeString
、andのみです。fromUTF16
fromUTF8
fromUTF32
私が確信していないもう1つのことは、UnicodeString
コンストラクターが私が与えたデータをコピーするかどうかです。私は、不変オブジェクトを操作するだけのゼロコピーアプローチを使用することを非常に好みます。そのため、コピー操作を実行せず、指定したバッファーを使用するだけです。
また、使用できるかどうかもわかりません( UTF-16文字列からUCharIterator
何らかの方法で変換できると仮定します)。UChar*
私の質問は、上記の目的で ICU をどのように使用すればよいですか?
ご回答ありがとうございます。