Тип данных char (и, следовательно, значение, которое представляет собой объект Character
инкапсуляции) основаны на оригинальной спецификации Unicode, которая
определенные символы как 16-битные объекты фиксированной ширины. Юникод
с тех пор стандарт был изменен, чтобы учесть символы,
представление требует более 16 бит. Ассортимент юридического кодекса
точки теперь от U + 0000 до U + 10FFFF, известные как скалярное значение Unicode.
(См. Определение обозначения U + n в стандарте Unicode.)
Набор символов от U + 0000 до U + FFFF иногда называют
как базовая многоязычная плоскость (BMP). Символы, чьи кодовые точки
больше, чем U + FFFF, называются дополнительными символами. Ява
2 платформа использует представление UTF-16 в массивах символов и в
Классы String и StringBuffer. В этом представлении дополнительный
символы представлены в виде пары значений char, первый из
диапазон высоких суррогатов, (\ uD800- \ uDBFF), второй из
диапазон низких суррогатов (\ uDC00- \ uDFFF).
Значение символа, следовательно, представляет базовую многоязычную плоскость (BMP)
кодовые точки, включая суррогатные кодовые точки или кодовые единицы
Кодировка UTF-16. Значение int представляет все кодовые точки Unicode,
включая дополнительные кодовые знаки. Нижний (наименее значимый) 21
биты int используются для представления кодовых точек Unicode и верхнего
(самое значительное) 11 битов должны быть равны нулю. Если не указано иное,
поведение по отношению к дополнительным персонажам и суррогатным
Значения char следующие:
- Методы, которые принимают только значение символа, не могут поддерживать дополнительные символы. Они относятся к значениям символов из суррогата
диапазоны как неопределенные символы. Например,
Character.isLetter ('\ uD840') возвращает false, хотя это
значение, если за ним следует любое низкосуррогатное значение в строке
представлять письмо.
- Методы, принимающие значение типа int, поддерживают все символы Unicode, включая дополнительные символы. Например,
Character.isLetter (0x2F81A) возвращает true, потому что значение кодовой точки
представляет букву (идеография CJK).