我正在努力使用Zebra Printer对字符进行编码。
我正在使用ZebraDesigner,例如,我使用文本“Texteaccentué”创建了一行。 在生成的.prn文件中,行如下: ^ FT27,67 ^ A0N,28,28 ^ FH \ ^ FDTexte accentu \ 82 ^ FS
我猜是\ 82是我的信é的编码版本,但我发现它们之间没有任何关系。
欢迎任何帮助。
答案 0 :(得分:0)
^ CI是设置编码的命令。那也应该在你的输出中。在ZPL指南中查看该命令的定义,看看它是如何的
答案 1 :(得分:0)
好的,我完成了它: 0x82(Hexa)或130(Dec)是扩展ASCII中的“é”编码(Codepages 437或850:http://www.ascii-codes.com/)
要转换我的字符串,我必须使用这个PHP函数:
$text = iconv('UTF-8', 'CP437//TRANSLIT', $text); // Also works with CP850
我终于创建了这个小脚本,它只转换扩展的ASCII字符(十进制代码&gt; = 128),因为基本的正确理解,我希望我的函数以完整文件作为参数运行。< / p>
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;
}