ICU 또는 부스트 로케일 사용을 고려 중입니다.ICU 대 부스트 로케일 (C++)
각 장단점은 무엇입니까?
나는 ICU를 사용하는 것을 모두 이해하지만 ICU는 부스트 로케일에 의해 숨겨져 있습니다. Boost Locale's rationale page에 따르면 "... 전체 ICU API는 불투명 한 포인터 뒤에 숨겨져 있으며 사용자는 액세스 할 수 없습니다."
이러한 라이브러리를 비교할 때 C++ 11에서 새로운 유니 코드 기능을 고려하십시오.
아주 좋은 요약, 확실히 +1. "매우 불안정한"국제화는 매우 간단하고 기본적인 것들만 필요하다면 괜찮을 수도 있습니다. 모든 애플리케이션에 ICU와 같은 기능이 필요하지는 않습니다. 그리고 ICU의 C++ API는 현대적인 C++/Boost 스타일에 익숙하다면 상당히 고통 스럽습니다. – jalf
-1. OP는 ICU와 * Boost.locale * 사이의 비교를 원합니다. Boost.locale은 ICU와 GNUGettext를 감싸는 라이브러리입니다. "Boost.locale은 많은 국제화를 가져옵니다. [...] 부스트는 라이브러리의 큰 컬렉션이며, 다른 것들보다 나은 것들도 있습니다. ICU를 직접 사용하는 것이 낫지 않겠습니까? –
답변은 묵시적입니다. ICU를 직접적으로 사용합니다 .Boost.locale은 래퍼이므로 ICU 또는 그보다 더 좋을 수 있습니다. ICU보다 C++이 더 좋아 보이지만 추가 버그가 발생할 수도 있습니다 (Mac OS X API 포장 ICU에서 ICU에없는 버그가 도입 된 상황을 알고 있습니다). 또한 Boost.locale은 UTF-8을 계속 사용합니다.ICU는 UTF-16에서 작동하기 때문에 모든 호출이 UTF-8에서 UTF-16으로 변환 및 뒤로 이동해야하며, 문자열 스트링 등을 매핑해야합니다. 성능이 저하되고 오류가 발생하기 쉽습니다. –