J'essaie de convertir une chaîne composée de données hexadécimales comme C120
, ce qui signifie A
et (espace) respectivement. Je reçois la chaîne et essaie de la diviser en un tableau de chaînes. J'essaie alors d'itérer ce tableau et d'obtenir les valeurs
UTF-8
correspondantes. Voici mon code:Conversion de la chaîne HEX en retours EBCDIC Exception de format numérique
public static String toEbcdic(String strToConvert){
String[] test = strToConvert.split("(?<=\\G..)");
ByteBuffer sb = ByteBuffer.allocate(test.length);
for (String s : test) {
Byte valueOf = Byte.valueOf(s, 10);
sb.put(valueOf);
}
return new String(sb.array(), "CP1047");
}
Lorsqu'il est passé l'entrée C120C2
, je reçois l'exception suivante:
Exception in thread "main" java.lang.NumberFormatException: For input string: "C1"
Qu'est-ce que je fais mal? Que devrait-on faire pour obtenir la valeur EBCDIC correspondante?
Vous m'avez sauvé après une semaine de travail. J'aimerais que cela soit déjà arrivé. Merci! Je n'ai jamais pensé à aller à court et puis à byte. Mais le seul paquebot est génial. Merci encore! Malheureusement, la prime peut être accordée après 20 heures, alors je vais le faire une fois qu'il aura traversé le temps. :) – JackSlayer94