Ich versuche, etwas zu debuggen und ich frage mich, ob der folgende Code immer true zurück, konnteKann eine leere Java-Zeichenfolge aus einem nicht leeren UTF-8-Byte-Array erstellt werden?
public boolean impossible(byte[] myBytes) {
if (myBytes.length == 0)
return false;
String string = new String(myBytes, "UTF-8");
return string.length() == 0;
}
Gibt es einen Wert, den ich in das wahr wird wieder passieren kann? Ich habe versucht, nur das erste Byte einer 2-Byte-Sequenz zu übergeben, aber es erzeugt immer noch eine einzelne Zeichenkette.
Um dies zu verdeutlichen, geschah dies auf einem PowerPC-Chip auf Java 1.4-Code, der über GCJ in eine native ausführbare Binärdatei kompiliert wurde. Dies bedeutet im Grunde, dass die meisten Wetten aus sind. Ich frage mich hauptsächlich, ob Javas "normales" Verhalten oder Javas Spezifikation irgendwelche Versprechen gegeben hat.
Leider behandelt Java die UTF-8-Stückliste nicht korrekt. Geht überhaupt nicht damit um; behandelt es nur als Teil des Inhalts –