Как преобразовать шестнадцатеричный байт в Unicode в Java - PullRequest
1 голос
/ 01 июня 2011

Я хочу преобразовать шестнадцатеричный байт в Unicode.У меня есть шестнадцатеричный 0x80 в Windows-1250, и я хочу преобразовать в '\u0402'.Возможно ли это стандартными методами без выключателя.

Ответы [ 2 ]

1 голос
/ 01 июня 2011

\u0402 называется CYRILLIC CAPITAL LETTER DJE.Я полагаю, у вас есть какой-то текст в другой CP1251 кодировке символов, кодировка где 0x80 отображается на одну и ту же кириллицу.

Попробуйте определить кодировкувашего текущего текста (ваши байты) и используйте

String s = new String(myBytes, "Cp1251");

, чтобы прочитать байты в строку.После этого вы можете снова преобразовать строку в байты, используя правильную кодировку.

Дальнейшее чтение

0 голосов
/ 01 июня 2011

Давайте разберемся: у вас есть несколько байтов в CP1250, и вы знаете кодировку. Вы хотите отправить их в какую-либо систему в виде строки с экранированными символами в форме \uXXXX или в виде байтов в UTF-16.

Прежде всего, следуя совету, данному Andreas_D: new String(bytes, "CP1250") преобразует ваши байты в строку Java.

теперь, чтобы иметь массив байтов в utf-16, используйте new String(bytes, "CP1250").getBytes("UTF-16);

чтобы получить эту строку как строку ASCII с экранированным символом Юникода, используйте this пример

...