Vous avez ce qu'on appelle un double codage.
Vous avez la séquence de trois caractères "你 好吗" que vous signalez correctement est codée en UTF-8 comme E4BDA0 E5A5BD E59097.
Mais maintenant, commencez à coder chaque octet de cet encodage en UTF-8. Commencez avec E4. Quel est ce codepoint en UTF-8? Essayez-le! C'est C3 A4!
Vous avez l'idée .... :-)
Voici une application Java qui illustre ceci:
public class DoubleEncoding {
public static void main(String[] args) throws Exception {
byte[] encoding1 = "你好吗".getBytes("UTF-8");
String string1 = new String(encoding1, "ISO8859-1");
for (byte b : encoding1) {
System.out.printf("%2x ", b);
}
System.out.println();
byte[] encoding2 = string1.getBytes("UTF-8");
for (byte b : encoding2) {
System.out.printf("%2x ", b);
}
System.out.println();
}
}
Ne pas poser simplement une nouvelle question quand ancien se sont mis-a voté. Essayez d'améliorer l'original: [impossible d'afficher les caractères de l'image dans la classe Java] (https://stackoverflow.com/q/46200918) – Pshemo
Comment pensez-vous que UTF-8 est impliqué? Quelle est la séquence de chaînes ou d'octets avec laquelle vous démarrez? –
@Tom, il a été envoyé à partir de HTML –