Если у вас Java 5, используйте char c = ...; String s = String.format ("\\u%04x", (int)c);
Если ваш источник не символ Unicode (char
), а строка, вы должны использовать charAt(index)
, чтобы получить символ Unicode в позиции index
.
Не используйте codePointAt(index)
, потому что это вернет 24-битные значения (полный Unicode), которые не могут быть представлены только 4 шестнадцатеричными цифрами (для этого нужно 6). См. документы для объяснения .
[EDIT] Чтобы было понятно: в этом ответе используется не Unicode, а метод, который Java использует для представления символов Unicode (то есть суррогатных пар), поскольку char 16-битный, а Unicode 24-битный. Вопрос должен звучать так: «Как я могу преобразовать char
в четырехзначное шестнадцатеричное число», поскольку речь идет не о Юникоде (на самом деле).