Как символы Java 16 битов поддерживают Unicode?

Символ Javas составляет 16 битов, уже Unicode имеет намного больше символов - как заключает сделку о Java с этим?

7
задан leeeroy 21 December 2009 в 17:56
поделиться

3 ответа

Строки Java имеют формат UTF-16 (big endian), поэтому кодовая точка Unicode может состоять из одного или двух символов. В этой кодировке Java может представлять кодовую точку U + 1D50A ( MATHEMATICAL FRAKTUR CAPITAL G ), используя символы 0xD835 0xDD0A (строковый литерал «\ uD835 \ uDD0A» ). Класс Символ предоставляет методы для преобразования в / из кодовых точек.

// Unicode code point to char array
char[] math_fraktur_cap_g = Character.toChars(0x1D50A);
8
ответ дан 6 December 2019 в 07:26
поделиться

http://en.wikipedia.org/wiki/UTF-16

В вычислениях UTF-16 (16-битный Формат преобразования UCS / Unicode) кодировка символов переменной длины для Unicode, способный кодировать весь репертуар Unicode. В форма кодирования отображает каждый символ в последовательность 16-битных слов. Символы известны как кодовые точки, а 16-битные слова известны как кодовые единицы. Для персонажей в Basic Многоязычная плоскость (BMP). кодировка - одно 16-битное слово. За персонажи в других планах, кодирование приведет к паре 16-битные слова, вместе называемые суррогатная пара. Все возможные коды точки от U + 0000 до U + 10FFFF, кроме суррогатных кодовых точек U + D800 – U + DFFF (которые не символов), однозначно отображаются UTF-16 независимо от кодовой точки текущее или будущее назначение персонажей или используйте.

13
ответ дан 6 December 2019 в 07:26
поделиться

Java использует UTF-16 для строк - в основном это означает, что символы имеют переменную ширину. Большинство из них умещаются в 16 битах, но те, что находятся за пределами базовой многоязычной панели, занимают 32 бита. Это очень похоже на схему UTF-8.

3
ответ дан 6 December 2019 в 07:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: