C 11의 문자열 리터럴에 대한 유니코드 인코딩
C 11에 새로운 문자 및 문자열 리터럴 유형이 도입되면서 언어의 기능이 확장되었습니다. 유니코드 인코딩 처리. 현재 4가지 문자 유형(char, wchar_t, char16_t, char32_t)과 5가지 문자열 리터럴 유형이 있지만 인코딩 메커니즘을 사용하는 이러한 문자 및 문자열의 동작과 호환성에는 특정 규칙이 있습니다.
인코딩 호환성
x 문자 참조는 모든 문자열 유형에 사용할 수 있으며, 16진수. 그러나 u 및 U 참조는 UTF로 인코딩된 의미 체계를 갖는 문자열로 제한됩니다. 문자 참조는 포함된 문자열의 인코딩을 기반으로 변환됩니다.
문자열 길이 및 인코딩
문자열에 포함된 유니코드 코드 단위의 수는 다음에 따라 달라질 수 있습니다. 인코딩에서 문자열 리터럴을 나타내는 배열은 고정 너비이며 각 요소는 단일 코드 단위를 나타냅니다. 사용되는 코드 단위 수는 문자열의 유니코드 인코딩에 따라 결정됩니다.
UTF 인코딩 의미
u"" 문자열 리터럴은 특별히 UTF-16으로 인코딩됩니다. u8"" 문자열 리터럴은 UTF-8로 인코딩됩니다. UTF-16 인코딩은 char16_t 코드 단위를 사용하는 반면 UTF-8 인코딩은 가변 길이 바이트 시퀀스를 사용하여 코드 포인트를 나타냅니다.
Lone Surrogates
Lone surrogate(0xD800- 0xDFFF)는 u 시퀀스의 코드 포인트로 허용되지 않습니다. 이 범위의 유니코드 문자를 나타내려면 UTF-16 서로게이트 쌍을 사용해야 합니다.
인코딩 인식
표준 문자열 조작 함수는 본질적으로 유니코드 인코딩 의미 체계를 처리하지 않으며 UTF를 처리하지 않습니다. -개별 코드 단위의 시퀀스로 인코딩된 문자열입니다. 그러나 로케일을 통한 입력 및 출력 스트림을 사용하면 적절한 상황화를 통해 유니코드로 인코딩된 값을 읽고 쓸 수 있습니다.
위 내용은 C 11 문자열 리터럴은 다양한 유니코드 인코딩을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!