У меня есть строка, которая содержит следующую шестнадцатеричную презентацию:
"5f e8 d0 7b c0 f7 54 07 fb e4 20 f5 b8 10 67 a9"
Вы понимаете, что это всего лишь шестнадцатеричный формат, и мне нужно получить это шестнадцатеричное представление от String. Строка выглядит так:
"ED> @@ 2.W.W'KJ% z_ {T g"
Итак, как получить из "ED> @@ 2.W.W'KJ% z_ {T g" шестнадцатеричное представление "5f e8 d0 7b c0 f7 54 07 fb e4 20 f5 b8 10 67 a9"? Это непечатные символы, поэтому я не могу использовать это:
public static String stringToHex(String arg) {
return String.format("%x", new BigInteger(arg.getBytes()));
}
результат: -10404282104042104042104042104042104042c7eea21040428189104042104042f5.
А также это возвращает мне что-то странное:
System.out.println(String.format("%h", Integer.toHexString(buff.charAt(0))));
результат: 6d1.
И этот код иногда работает. Данные поступают из сокета (как String, потому что мне нужно получить много ответов в виде String и только этот Auth Challenge в виде hex).