Невозможно показать символы изображения в классе Java
1 ответ
Решение
У вас есть то, что известно как двойное кодирование.
У вас есть трехсимвольная последовательность "你好吗", которую вы правильно указали, которая закодирована в UTF-8 как E4BDA0 E5A5BD E59097.
Но теперь, начните кодировать каждый байт кодировки ТА в UTF-8. Начните с E4. Что это за код в UTF-8? Попытайся! Это С3 А4!
Вы поняли идею....:-)
Вот приложение Java, которое иллюстрирует это:
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();
}
}