Пожалуйста, попробуйте заставить апплет Java использовать Cyrilic: qz.setEncoding("cp1251");
или qz.setEncoding("windows-1251");
, если принтер изначально не поддерживает UTF-16, а затем qz.setEncoding("UTF-16");
Обновление: В новых версиях QZ лотком, синтаксис qz.configs.create("My Printer", { encoding: 'UTF-8' });
Также не забудьте указать <meta charset="utf-8">
на своей странице.
Edit: Там есть подробное объяснение того, что вызывает это здесь: Printer ZebraZ4MPlus don't print Russian Cirillyc character
Java имеет привычку предполагая, какой набор символов вы хотите использовать, который часто cp1252 (Windows) или UTF-8 (* Никс). В зависимости от того, какую кодировку ожидает принтер (и какие кодировки он поддерживает), Java сначала должен перевести эти символы/команды на подходящий эквивалент перед отправкой. Полный список кодировок, поддерживаемых Java 7, доступен here.
Очень похожий вопрос был поставлен на трекер ошибок qz в отношении поддержки греческого символа. Трюк состоял в том, чтобы сказать как Java, так и принтер, в котором используется кодировка языка/символа.
Наконец, у меня были сценарии, в которых флаг BOM (знак байтового заказа) в файле html/js вызвал нежелательные результаты. В этом случае JavaScript знал о кодировке документа, и трансляция происходила перед отправкой на Java. Я использую Notepad ++ для включения/выключения спецификации UTF-8.
Кроме того, здесь приведена ссылка на отчет об ошибке qz, относящийся к другому языку печати (ESCP вместо ZPL), но имеет аналогичный симптом выхода из Java, который неправильно переносится для его принтера. https://code.google.com/p/jzebra/issues/detail?id=204#c10
-Tres
Большое спасибо! Я установил кодировку qz.setEncoding («UTF-16»), и она сработала. – AlexSmith
У меня также были сообщения о '' исправлении проблем с кодировкой. Добавление в исходное сообщение. :) – tresf