[java] Получить значение unicode символа



Answers

Если у вас есть Java 5, используйте char c = ...; String s = String.format ("\\u%04x", (int)c); char c = ...; String s = String.format ("\\u%04x", (int)c);

Если ваш источник не является символом Юникода ( char ), а строкой, вы должны использовать charAt(index) чтобы получить символ Юникода в index позиции.

Не используйте codePointAt(index) потому что он вернет 24-битные значения (полный Юникод), которые не могут быть представлены всего четырьмя шестнадцатеричными цифрами (ему нужно 6). См. Документы для объяснения .

[EDIT] Чтобы сделать это ясно: этот ответ не использует Юникод, но метод, который использует Java для представления символов Юникода (т. Е. Суррогатных пар), поскольку char имеет 16 бит, а Unicode - 24 бит. Вопрос должен быть следующим: «Как преобразовать char в четырехзначный шестнадцатеричный номер», поскольку он не является (действительно) об Unicode.

Question

Есть ли какой-либо способ в Java, чтобы я мог получить Unicode эквивалент любого символа? например

Предположим, что метод getUnicode(char c) . Вызов getUnicode('÷') должен вернуться \u00f7 .




char c = 'a';
String a = Integer.toHexString(c); // gives you---> a = "61"



вы придирчивы к использованию Unicode, потому что с java его более простой, если вы пишете свою программу для использования значения «dec» или (HTML-Code), тогда вы можете просто создавать типы данных между char и int

char a = 98;
char b = 'b';
char c = (char) (b+0002);

System.out.println(a);
System.out.println((int)b);
System.out.println((int)c);
System.out.println(c);

Дает этот результат

b
98
100
d



Related



Tags

java java   unicode