Как исправить проблему с кодировкой чешских символов при использовании BluetoothManager для печати? - PullRequest
0 голосов
/ 27 января 2019

У меня есть старый проект на Java, и я наверняка встретил там небольшую проблему.

вот код:

public boolean printerPrint(List<String> list) {
    if (btMan != null) {
        try {
            // Select character code table (ESC t n) - n = 16(0x10)
            btMan.getOutputStream().write(0x1B);
            btMan.getOutputStream().write(0x74);
            btMan.getOutputStream().write(0x10);

            for (String s : list) {
                byte[] byteLine = (s).getBytes(ISO_8859_1);
                String line = Util.byte2HexStr(byteLine) + " 0A";
                btMan.SendData(line);
            }
            btMan.SendData("0A 0A 0A");
        } catch (Exception e) {
            Timber.e(e, "printing stop failed");
        }
    }
    return true;
}

Вот скриншот из приложения, этот счет должен быть таким же после печати. ​​

Вот счет после печати:

Некоторые буквы не напечатаны (š, ě, č, ř, ž), но их заменили на «?».Я пытался использовать ISO8859-2 (та же проблема, что и в ISO-8859-1, но вместо замены на «?» Они были заменены некоторыми буквами, которые не являются правильными), UTF8 / UTF-8 (особенно сэто не работает вообще).

Если кто-то когда-либо встречался с этим, любой совет хорош.

...