Невозможно показать символы изображения в классе Java

Я должен показать / хотя бы напечатать вложенные символы в строке String str = (вложенный) ул

 System.out.println("Str : "+Str);

Но я не могу напечатать точные символы. Я использовал UTF 8 и 16 кодирования.

заранее спасибо

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();
    }
}
Другие вопросы по тегам