Je suis en train de déboguer quelque chose et je me demande si le code suivant pourrait jamais revenir vraiUne chaîne Java vide peut-elle être créée à partir d'un tableau d'octets UTF-8 non vide?
public boolean impossible(byte[] myBytes) {
if (myBytes.length == 0)
return false;
String string = new String(myBytes, "UTF-8");
return string.length() == 0;
}
Y at-il une valeur que je peux passer qui renverra vrai? J'ai joué avec le premier octet d'une séquence de deux octets, mais il produit toujours une seule chaîne de caractères.
Pour clarifier, cela s'est produit sur une puce PowerPC sur le code Java 1.4 compilé par GCJ à un exécutable binaire natif. Cela signifie essentiellement que la plupart des paris sont désactivés. Je me demande surtout si le comportement «normal» de Java ou les spécifications de Java ont fait des promesses.
Malheureusement, Java ne gère pas correctement la nomenclature UTF-8. Ne gère pas du tout, vraiment; juste le traite dans le cadre du contenu –