유니 코드에는 2^16 개 이상의 문자가 포함되어 있습니다. Java 'char'및 'String'은 전체 문자 세트를 나타 내기 위해 유니 코드 변환 형식 (UTF-16)을 사용합니다. Base Multilingual Plane의 문자는 단일 16 비트 'char'로 표현됩니다. 나머지는 서로 게이트 쌍으로 표시됩니다.이 목적으로 예약 된 두 개의 특수 16 비트 값입니다.
대체 표현은 UTF-32입니다. 이 표현에서 각 문자는 단일 32 비트 항목, 마침표입니다.
예를 들어, 설형 문자가 SMP에 있습니다. 블록의 첫 번째 문자는 U + 12000입니다. UTF-32에서는 0x12000입니다. UTF-16에서는 "\uD808\uDC00"
입니다. Here's some pictures.
Character
및 String
클래스는 편의상 UTF-32 문자로 작동하는 몇 가지 방법을 제공합니다. 당신은 그들 중 하나에 대해 묻고 있습니다. 문자의 데이터 유형으로 'int'를 볼 때마다 'int'에 UTF-32 값이 포함됩니다. 서로 게이트 쌍 대신에 단일 UTF-32 값으로 일부 연산을 수행하는 것이 더 편리 할 수 있다는 것을 알기는 어렵지 않습니다.
이것은 작곡 된 악센트와 관련이 없습니다. 하나 또는 두 개의 UTF-16 문자로 유니 코드로 표현 될 수 있지만 관련 대리는 없습니다. U + 0061 (a), U + 00E1 (a와 precomposed accent) 및 U + 0301 (acute accent 구성)은 모두 일반 BMP 문자입니다. 따라서 UTF-32에서도 U + 0061, U + 0301의 두 항목으로 구성 할 수 있습니다.
ICU4J 라이브러리는보다 완전한 UTF-32 클래스 및 메소드 세트를 제공합니다.
그것을인가 값 int? – Vikram
유니 코드 코드 포인트를 다루기 때문에'char'가 제공하는 것보다 넓은 범위가 필요합니다. 'char'는 단지 8 비트이고'int'는 32 비트입니다. – Guildenstern
@Guildenstern'char'는 16 비트입니다. 원래 유니 코드는 충분했지만 더 이상은 아닙니다. – ajb