Cómo convertir cadena hexagonal a cadena Java

Para fines de registro, algunos otros chicos convirtieron los registros en matriz de bytes y luego en cadena hexadecimal. Pero quiero recuperarlo en java String, pero no puedo hacerlo,

la cadena hexadecimal en el archivo de registro se ve algo así como

fd00000aa8660b5b010006acdc0100000101000100010000 

¿Alguien puede ayudar a decodificarlo?

Gracias por adelantado..

Usando Hex en Apache Commons:

 String hexString = "fd00000aa8660b5b010006acdc0100000101000100010000"; byte[] bytes = Hex.decodeHex(hexString.toCharArray()); System.out.println(new String(bytes, "UTF-8")); 
 byte[] bytes = DatatypeConverter.parseHexBinary(hexString); String result= new String(bytes, encoding); 

Antes que nada lea en los datos, luego conviértalo en matriz de bytes:

  byte b = Byte.parseByte(str, 16); 

y luego usa String constructor de String :

 new String(byte[] bytes) 

o si el juego de caracteres no es predeterminado del sistema, entonces:

 new String(byte[] bytes, String charsetName) 

Puede pasar de String (hex) a byte array a String as UTF-8(?) . Asegúrate de que tu cadena hexadecimal no tenga espacios iniciales ni nada .

 public static byte[] hexStringToByteArray(String hex) { int l = hex.length(); byte[] data = new byte[l/2]; for (int i = 0; i < l; i += 2) { data[i/2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i+1), 16)); } return data; } 

Uso:

 String b = "0xfd00000aa8660b5b010006acdc0100000101000100010000"; byte[] bytes = hexStringToByteArray(b); String st = new String(bytes, StandardCharsets.UTF_8); System.out.println(st); 

Pruebe el siguiente código:

 public static byte[] decode(String hex){ String[] list=hex.split("(?<=\\G.{2})"); ByteBuffer buffer= ByteBuffer.allocate(list.length); System.out.println(list.length); for(String str: list) buffer.put(Byte.parseByte(str,16)); return buffer.array(); } 

Para convertir a Cadena solo crea una nueva Cadena con el byte [] devuelto por el método de deencoding.

Solo otra forma de convertir cadenas hexadecimales a cadenas Java:

 public static String unHex(String arg) { String str = ""; for(int i=0;i