斑马打印机塞尔维亚拉丁字符

3

我有一个问题,Zebra打印机RW220无法打印塞尔维亚拉丁字符,比如čćžšđ。我开发了一款使用该打印机的Android应用程序。打印部分基于Zebra SDK。以下是代码的一部分:

private byte[] getConfigLabel() {
    PrinterLanguage printerLanguage = printer.getPrinterControlLanguage();
    byte[] configLabel = null;
    if (printerLanguage == PrinterLanguage.ZPL) {
        try {
            configLabel = "^XA^FO17,16^GB379,371,8^FS^FT65,255^A0N,135,134^FDTEST^FS^XZ".getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else if (printerLanguage == PrinterLanguage.CPCL) {
        String cpclConfigLabel = "! 0 200 200 780 1\r\n" + "T ARIAL9PT.CPF 0 60 10 ABCČĆŽŠĐ\r\n"
        + "PRINT\r\n";
        configLabel = cpclConfigLabel.getBytes();
    }
    return configLabel;
}

使用的字体是Arial,我使用Zebra Utilities将其转换为CPF格式以便打印。我还将字符添加到字体中,但它不会打印出来。在这个例子中,只会打印ABC。对于系统字体,它打印一些奇怪的字符。我还尝试在"T ARIAL9PT.CPF 0 60 10 ABCČĆŽŠĐ\r\n"之前添加了"ENCODING UTF-8"行,但它没有产生任何作用,系统字体也是一样。请问如何打印塞尔维亚拉丁文字符?谢谢。
编辑: ISO-8859-2可以打印Č和Ć,但不能打印Ž。

1
尝试使用最后一个 getBytes()cpclConfigLabel.getBytes("ISO-8859-5"); 或者 "UTF-8"。尝试使用 \u010d 代替 č,以避免 Java 源编码问题。 - Joop Eggen
没帮上忙……"ISO-8859-5"无法打印出čćžšđ,即使使用\u010d也不行,而UTF-8则会出现奇怪的字符。 - Marko Mijailovic
1个回答

2

问题终于解决了,解决方案是使用“CP1250”编码,也称为Windows-1250。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接