페이지 (601)이 "유사한 문자 집합"카테고리 아래<cctype> 함수는 유니 코드와 함께 작동합니까? 는 C++ 스페셜 에디션의
In <ctype.h> and <cctype>, the standard library provides a set of useful functions for dealing with ASCII and similar character sets.
겠습니까 유니 코드 가을 ...라고?
페이지 (601)이 "유사한 문자 집합"카테고리 아래<cctype> 함수는 유니 코드와 함께 작동합니까? 는 C++ 스페셜 에디션의
In <ctype.h> and <cctype>, the standard library provides a set of useful functions for dealing with ASCII and similar character sets.
겠습니까 유니 코드 가을 ...라고?
유니 코드 지원은 언어의 주요 문제점이었습니다. 비 ANSI 용 로케일을 설정하고 wchar_t
변형을 사용해야합니다. wchar_t
의 정확한 의미는 구현에 따라 다릅니다. 예컨대 :
setlocale(LC_CTYPE, "en_ca.UTF-8");
는
locales에 유니 코드 컨소시엄 페이지를 살펴 보자.
흠 ... 그렇다면
효과가 있습니다. 내가 말한 것은'wchat_t'는 UCS-4와 같은 형식을 지정하지 않는다는 것입니다. 다중 바이트 데이터를 나타냅니다. 기본 형식은 시스템마다 다릅니다. – dirkgently
<cctype>
의 기능은 실제로 유니 코드 인코딩을 지원하는 데 사용할 수 없습니다.
비슷한 문자 세트의 메모는 8 비트 문자 인코딩 계열과 정확히 관련되어 있다고 생각합니다 (예 : EBCDIC).
그러나 ASCII는 유니 코드의 하위 집합 (또는 변형)을 고려하는 것이 맞습니다. 유니 코드의 UTF-8 인코딩을 사용하면 처음 128 코드 포인트는 128 ASCII 문자와 같고 처음 256 문자는 라틴어 -1과 동일합니다. 즉, 모든 ASCII는 유효한 UTF-8로 간주됩니다.
정말 구현에 따라 다릅니다. C++은 확실히 그것을 허용하지만 강제는 아닙니다. CHAR_BIT
> = 20이 필요합니다. 실제로 구현하지 않습니다. 유니 코드는 일반적으로 wchar_t
및 해당 <cwctype>
헤더로 지원됩니다.
0-> 127 범위의 유니 코드 코드 포인트의 하위 세트 만 사용하고 UTF-8 인코딩을 사용하는 경우 위의 헤더에서 함수가 올바르게 작동해야합니다. –
IBM의 멋진 오픈 소스 라이브러리가 있습니다. 바로 이름이 기억 나지 않습니다. 거대한 데이터베이스와 유니 코드 문자에 대해 흥미로운 질문을 할 수있는 수많은 기능이 있습니다. 나는 표준 라이브러리 물건들에 대해 그것을 권하고 싶다. 'wchar_t'는 쓸모 없게 막연합니다. – Omnifarious
@Omnifarious : "ICU". – kennytm