2

ICU C インターフェイスを使用して文字列を正規化したいと考えています。

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

  1. UNormalizer2 インスタンス -- 使い終わった後、どのように処分すればよいですか?

  2. バッファーが分解または再構成に十分な大きさでない場合はどうなりますか? エラー コードが U_BUFFER_OVERFLOW_ERROR であるかどうかを確認する通常の方法はありますか? U_STRING_NOT_TERMINATED_WARNING は適用されますか? 結果の文字列は null で終了しますか? エラーが返された場合、メモリを再割り当てして再試行しますか? 最初からやり直すのは時間の無駄のようです。

4

1 に答える 1

0
  1. unorm2_close()を参照してください。unorm2_getInstance() で取得したインスタンスを解放しないでください。
  2. 一般に、ほとんどの ICU API には NULL バッファと長さ 0 を入力として渡すことができます。これにより、U_BUFFER_OVERLOW_ERROR が発生し、変数に必要な長さが設定されます。U_STRING_NOT_TERMINATED_WARNING が表示された場合、それは次のことを意味します: データは入力されていますが、終了していません。
于 2012-05-06T19:49:20.627 に答える