1

ICU のドキュメントはやや難しいと思います。

私の質問は: ICU4C を使用して文字列を正規化するにはどうすればよいですか?

unorm2_normalize を見ていますが、バッファが十分に大きくない場合はどうなりますか? どうすればこれを事前に知ることができますか? 当然、文字列全体を正規化したい。

ありがとう!:>

PS ここにその関数の API ドキュメントがあります: http://icu-project.org/apiref/icu4c/unorm2_8h.html#a0a596802db767da410b4b04cb75cbc53

4

1 に答える 1

1

pErrorCode パラメータで、これらすべての関数呼び出しからエラー コードが返されます。これは、そのような関数を呼び出す方法です。

UErrorCode error = U_ZERO_ERROR;
unorm2_normalize( ... &error );
....
if( !U_SUCCESS( error ) )
{
    // handle error...
}

エラー コードは次のとおりです

あなたの場合、次のようなことをしたいかもしれません:

if( error == U_STRING_NOT_TERMINATED_WARNING
   || error == U_BUFFER_OVERFLOW_ERROR )
{
    // enlarge the buffer...
}
于 2012-05-04T11:05:59.097 に答える