Zebra 打印机和字符编码

Zebra Printer and character encoding

我正在为使用 Zebra 打印机进行字符编码而苦恼。

我正在使用 ZebraDesigner,例如,我用文本 "Texte accentué" 创建了一行。 在生成的 .prn 文件中,该行如下: ^FT27,67^A0N,28,28^FH\^FDTexte accentu^FS

我猜 \82 是我的字母 é 的编码版本,但我没有发现它们两者之间有任何关系。

欢迎任何帮助。

^CI是设置编码的命令。那也应该在您的输出中。查看 ZPL 指南中该命令的定义,了解它是如何

好的,我通过了: 0x82 (Hexa) 或 130 (Dec) 是扩展 ASCII 中“é”的编码(代码页 437 或 850:http://www.ascii-codes.com/

要转换我的字符串,我必须使用这个 PHP 函数:

$text = iconv('UTF-8', 'CP437//TRANSLIT', $text); // Also works with CP850

我终于制作了这个小脚本,它只转换扩展的 ASCII 字符(十进制代码 >= 128),因为正确理解了基本字符,我希望我的函数 运行 包含完整文件作为论据。

function zebraConvert($text)
{
    $return = '';
    $arr = str_split(iconv('UTF-8', 'CP437//TRANSLIT', $text));
    foreach ($arr as $char) {
        $ord = ord($char);
        if ($ord >= 128) {
            $return .= '\' . dechex($ord);
        } else {
            $return .= $char;
        }
    }
    return $return;
}