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;
}
我正在为使用 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;
}