Просто конвертируйте его в int
:
char registered = '®';
int code = (int) registered;
На самом деле существует неявное преобразование из char
в int
, поэтому вам не нужно указывать его явно, как я это делал выше, но я бы сделал это в этом случае, чтобы сделать очевидным, что вы пытаюсь сделать.
Это даст кодовую единицу UTF-16, которая совпадает с кодовой точкой Unicode для любого символа, определенного в базовой многоязычной плоскости. (И только символы BMP могут быть представлены как char
значения в Java.) Как говорит ответ Анджея Дойла, если вы хотите, чтобы код Unicode содержал произвольную строку, используйте Character.codePointAt()
.
Как только вы получите кодовую единицу UTF-16 или кодовые точки Unicode, но из которых целые числа, вам решать, что вы будете делать с ними. Если вы хотите строковое представление, вам нужно решить, какой именно вид представления вы хотите. (Например, если вы знаете, что значение всегда будет в BMP, вам может потребоваться фиксированное четырехзначное шестнадцатеричное представление с префиксом U+
, например, "U+0020"
для пробела.) Это выходит за рамки этого вопроса, так как мы не знаем, каковы требования.