2013-10-04 2 views
1

나는 예를Windows에서 4 바이트 문자 스트링?

if (my_string.front() == my_char) { 
    // do stuff with my_string 
} 

내 프로그램 지원 유니 코드를 만드는 방법에 대한 실용적인 조언을 찾고 있어요 위해, std::stringchar 유형에 다양한 작업을 수행하는 프로그램이 있습니다. 문자와 문자를 비교할 수있는 능력이 필요합니다. 4 바이트 문자가 필요하기 때문에 최대 Unicode 문자라도 손실없이 처리 할 수 ​​있습니다.

저는 GCC 컴파일러가있는 Windows에서이 경우 std::wstring이 2 바이트임을 읽습니다. C++ 11은 std::u32string (4 바이트 포함)이지만 표준 라이브러리에서는 지원되지 않습니다.

이 경우 가장 쉬운 해결책은 무엇입니까? http://en.wikipedia.org/wiki/UTF-16

당신은 모든 유니 코드 문자를 지원하기 위해 "네 바이트 문자가"필요가 없습니다

+0

, 그런 '이나 뭐. 저장 용량은 관리되지만 유니 코드는 인식되지 않습니다. – rodrigo

답변

2

. 먼저 문자열을 정규화해야합니다. 정규화가 간단하지 않기 때문에 ICU와 같은 라이브러리를 사용하게됩니다. 그래서 직접 직접 사용하려고 할 수 있습니다 : 당신은 또한`형식 정의 u32string를 basic_string 표준 : 사용할 수

http://site.icu-project.org/

관련 문제