如何使用ICU4C对字符串进行规范化?

我发现ICU文档有点挑战性。

我的问题是:如何使用ICU4C规范化字符串?

我正在看unorm2_normalize,但如果缓冲区不够大怎么办? 我以前怎么知道这个? 当然,我想将整个字符串规范化。

谢谢! :>

PS这是该函数的API文档: http : //icu-project.org/apiref/icu4c/unorm2_8h.html#a0a596802db767da410b4b04cb75cbc53

您将从pErrorCode参数中的所有这些函数调用中获取错误代码。 这就是你如何调用这样一个函数:

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

以下是错误代码: http : //icu-project.org/apiref/icu4c/utypes_8h.html#a3343c1c8a8377277046774691c98d78c

在你的情况下,你可能想要做这样的事情:

 if( error == U_STRING_NOT_TERMINATED_WARNING || error == U_BUFFER_OVERFLOW_ERROR ) { // enlarge the buffer... }