プログラムの要件 (個々の文字への高速アクセス) により、私はuint32_t[]
for character を使用しています。UTF-32コード単位ではなく、コード ポイントを格納するだけです。UTF-32コードユニットとUnicodeコードポイントは同じものだとは思わないので、それらを分離しておく必要があります.
コードポイントはnext32PostInc
関数から取得されます
そして、これらのコードポイントを を使用して UTF-8 チャンクにエンコードする必要がありlibICU
ますが、文字レベルの累積エンコーダーを見つけるのは困難です。を使用する方法はわかりますUnicodeString::append()
が、二重の変換が必要です。ucnv_convert
functions は仕事をしているようですが、UTF-32 code unitsでのみです。そして、コードポイントでそれらを使用する場合、安全性について本当に確信が持てません。現在、私は機能の逆を探していnext32PostInc
ます。どうやってやるの?コードポイントとコード単位に関する私の考えがあれば、私を修正してください。