2012-05-04 4 views
2

ICU C 인터페이스를 사용하여 문자열을 정규화하려고합니다.ICU4C를 통한 유니 코드 정규화

unorm2_normalize를 보면 몇 가지 질문이 있습니다.

  1. UNormalizer2 인스턴스 - 완료 후 어떻게 처리합니까?

  2. 버퍼가 분해 또는 재구성을 위해 충분히 크지 않으면 어떻게해야합니까? 오류 코드가 U_BUFFER_OVERFLOW_ERROR인지 확인하는 일반적인 방법입니까? U_STRING_NOT_TERMINATED_WARNING이 (가) 적용됩니까? 결과 문자열이 null로 종료 되었습니까? 오류가 반환되면 메모리를 재 할당하고 다시 시도합니까? 다시 시작하는 것이 시간 낭비 인 것 같습니다.

+0

이 질문은 귀하의 [다른 사람] (http://stackoverflow.com/q/10447452/777186)과 다른가요? 적어도 두 번째 부분은 거기에 대답 한 것 같지만, 내가 잘못했는지 말해봐. – jogojapan

답변

0
  1. unorm2_close()를 참조하십시오. unorm2_getInstance()를 통해 얻은 인스턴스를 해제해서는 안됩니다.
  2. 일반적으로 대부분의 ICU API는 널 버퍼와 0 길이를 입력으로 전달할 수 있으며 U_BUFFER_OVERLOW_ERROR와 필요한 길이로 채워진 변수가 입력되어야합니다. U_STRING_NOT_TERMINATED_WARNING이 표시되면 다음과 같은 의미입니다. 데이터는 채워지지만 종료되지는 않습니다.