2011-05-10 3 views
2

ICU에 ANSI (ISO-8859-6)로 변환하기 위해 전달하려는 char * (utf-8 문자열 포함)가 있습니다. 불행히도 대부분의 ICU 함수는 char *가 아닌 UChar를 사용합니다.ICU에서 char *를 UChar로 변환 할 수 있습니까?

어떻게 변환합니까?

+1

"유니 코드 문자"= UTF-8을 포함 할 수 있습니까? – kennytm

+0

'char *'를 타입으로 사용하면 기본 인코딩을 알 수 없습니다. * 인코딩 *은 중요한 부분입니다. – ildjarn

+0

@KennyTM 예 utf-8 (감사의 말로 나는이 질문을 편집했습니다) – Abdelwahed

답변

4

문서를 보셨습니까? UnicodeString::fromUTF8 눈에 띄는 ...

// given char* str 
UnicodeString ustr = UnicodeString::fromUTF8(StringPiece(str)); 

난 당신이 다음 UnicodeString::extract를 사용하여 원하는 코드 페이지에 ustr를 변환하는 방법을 알고 가정합니다.

1

정적 멤버 함수 FromUTF8을 사용하여 UTF-8 StringPieceUnicodeString으로 변환 할 수 있습니다. 따라서 char *를 사용하는 경우 다음과 같이 변환 할 수 있습니다.

const char* str; 
size_t len; 
UnicodeString ucs = UnicodeString::FromUTF8(StringPiece(str, len)); 
관련 문제