2012-05-04 10 views
2

ICU Cインターフェイスを使用して文字列を正規化します。ICU4CによるUnicode正規化

unorm2_normalizeを見ると、いくつか質問があります。

  1. UNormalizer2のインスタンス - 私はそれを完了した後にどのように処理しますか?

  2. バッファのサイズが分解または再構成に十分でない場合はどうなりますか?エラーコードがU_BUFFER_OVERFLOW_ERRORかどうかを確認する通常の方法はありますか? U_STRING_NOT_TERMINATED_WARNINGは適用されますか?結果の文字列はヌルで終了していますか?エラーが返された場合は、メモリを再割り当てして再試行しますか?もう一度やり直すのは時間の無駄だと思われます。

+0

この質問はあなたの[他の人物](http://stackoverflow.com/q/10447452/777186)とは異なりますか?少なくとも2番目の部分は答えられているようですが、私が間違っているかどうかを教えてください。 – jogojapan

答えて

0
  1. unorm2_close()を参照してください。 unorm2_getInstance()で取得したインスタンスを解放しないでください。
  2. 一般に、ほとんどのICU APIはNULLバッファーと長さ0の入力を渡すことができます。これはU_BUFFER_OVERLOW_ERRORになり、変数には必要な長さが設定されます。 U_STRING_NOT_TERMINATED_WARNINGを取得した場合は、次のようになります。データは入力されますが終了しません。
関連する問題