ESC / POS ПЕЧАТАЮЩИЕ АРАБСКИЕ ПЕРСОНАЖИ с термопринтером - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь напечатать арабскую строку в escpos из Android Java.Но только некоторые китайские иероглифы печатаются.Мой принтер поддерживает арабский язык.

Здесь мой код

private void printArabic() throws IOException {
    String print ="الجحيم";

    ByteBuffer init = ByteBuffer.allocate(2);
    init.put((byte) 0x1B);
    init.put((byte) 0x25);
    sendData(init.array(), outputStream);

    ByteBuffer dataToPrint = ByteBuffer.allocate(print.length());
    dataToPrint.put(print.getBytes("cp864"));
    sendData(dataToPrint.array(), outputStream);


}
private void sendData(byte[] buffer, OutputStream os) throws IOException
{
    try {
        ByteBuffer byteBuffer = ByteBuffer.wrap(buffer);
        os.write(byteBuffer.array());
        os.flush();
        // tell the user data were sent

    } catch (Exception e) {
        e.printStackTrace();
    }
}

Будет полезно, если кто-нибудь предложит какой-либо пример кода.

1 Ответ

1 голос
/ 01 мая 2019

Приветствие,

Ваша программа великолепна и работает нормально.

Проблема в том, что кодировка символов передается на принтер.Где-то в сети от вашей программы до принтера кодировка UTF-8 (java по умолчанию) преобразуется в другую кодировку.

Проверьте кодировку принтера по умолчанию, возможно, ее можно изменить.Если не удается изменить кодировку принтера по умолчанию, измените кодировку Java соответствующим образом.

Также, если у вас есть прокси / фильтр / брандмауэр в сети, это также может изменить кодировку.

Обновление

Изменить кодировку принтера по умолчанию с настройками принтера по умолчанию операционной системы.

Изменить кодировку Java, ответили здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...