Page 1 of 1

Org.apache.commons.codec.DecoderException: Ungerade Anzahl von Zeichen

Posted: 21 Dec 2024, 16:08
by Guest
Hex-String wird im URL-Parameter gesendet und versucht, ihn auf der Serverseite in einen String umzuwandeln.
Benutzereingabe-String wird mithilfe des folgenden Javascript-Codierungscodes konvertiert
function encode(string) {
var number = "";
var length = string.trim().length;
string = string.trim();
for (var i = 0; i < length; i++) {
number += string.charCodeAt(i).toString(16);
}
return number;
}

Jetzt versuche ich, den Hex-String 419 für das russische Zeichen Й im Java-Code wie folgt zu analysieren
byte[] bytes = "".getBytes();

try {
bytes = Hex.decodeHex(hex.toCharArray());
sb.append(new String(bytes,"UTF-8"));
} catch (DecoderException e) {
e.printStackTrace(); // Here it gives error 'Odd number of characters'
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

aber es gibt folgenden Fehler
"org.apache.commons.codec.DecoderException: Odd number of characters."

Wie es gelöst werden kann. Da es viele russische Zeichen gibt, die einen dreistelligen Hex-Code haben, ist eine Konvertierung in .toCharArray().