2017-03-29 2 views
1

libicuutf8 대신 "common denominator"형식으로 utf16을 사용하는 이유는 무엇입니까? utf8에서 utf32으로 변환해야하고 libicuu_tolower과 같은 자체 기능에도 UChar32 입력이 필요하지만이 2 단계 utf8->utf16->utf32 변환을 필요로하여 불필요하게 어렵게 만드는 것 같습니다.ICU는 중간 UTF16 변환 단계가 필요합니다

여기 메모리가 결정적인 요인이 아닌 것 같습니다. 그렇지 않으면 그들은 단지 "기본"형식으로 utf8을 사용할 수 있습니다.

+0

데이터 손실없이 모든 UTF를 서로 직접 변환 할 수 있지만 하나의 charset을 다른 문자셋으로 변환 할 때는 유니 코드를 통한이 2 단계 변환이 필요하며 UTF-16은 UTF-8보다 사용하기가 쉽고 대부분의 플랫폼에서는 UTF -16, UTF-8은 저장 및 통신에 더 많이 사용되지만 (* Nix는 메모리에서 UTF-8을 사용하기를 좋아하므로 예외입니다.) 그래서 그들은 가능하다면 최적화하지 않고 일관성을 위해'CharsetX -> CharsetY'를 변환 할 때와 마찬가지로'UTF-8 -> UTF-32'를 변환하는 동일한 처리 모델을 유지했을 것입니다. –

답변

0

UTF-16이 유니 코드 표준의 기본 인코딩 형식이므로 "그 이유"에 대한 대답으로 의심됩니다. 추가 정보는 this ICU page을 참조하십시오.

관련 문제