乱码、符号变方块,基本就是三类问题
小票打印出来一堆问号、口字框、或者中英文混着乱跳,通常逃不出字符集编码不一致、字体库缺失、纸宽/模板设置不对。下面按这三条线排查,很快能定位。
字符集编码:软件发的“语言”和打印机理解的不一样
常见场景:你在系统里录入“招牌奶茶¥12”,打印变成“??? 12”或“□□□12”。这多半是编码没对上。
- 确认打印机模式:热敏小票机多是ESC/POS。驱动里如果选成“图形打印/位图模式”,有时会把文本当图片处理,导致奇怪符号。
- 检查系统/插件的编码选项:有的商家助手会提供“UTF-8 / GBK / BIG5 / CP936”之类。中文场景优先试GBK/CP936。
- 同一台机器别混用多个打印通道:比如一会儿用浏览器直打,一会儿用客户端直连,编码策略可能不一致。
字体库缺失:中文没字形,就只能印方块
“符号变方块”特别典型:打印机里没这套字,或电脑端生成的内容引用了不存在的字体。
- 电脑端打印:把模板字体改成常见字体(如宋体/黑体),别用冷门字体;如果是PDF/网页打印,建议开启“嵌入字体/打印背景图形”。
- 打印机端缺字库:部分老款或海外版小票机中文库不完整,遇到“¥、·、特殊符号”会变口字框。解决思路是换支持中文字库的机型,或改成位图打印(代价是速度慢一点)。
纸宽与模板:58mm/80mm不匹配也会“看起来像乱码”
纸宽错了,内容被硬换行、截断、叠在一起,你会感觉像乱码。比如58mm模板却按80mm排版,商品名和金额就会挤成一团。
- 确认纸宽:常见是58mm和80mm。到打印机驱动或商家助手打印设置里对齐。
- 检查列宽/字号:58mm建议把商品名列控制在12-16个汉字以内,金额列固定宽度;字号太大也会挤爆。
- 用一张测试单验证:做3行商品、含中文+符号(如“加冰·少糖 ¥12.00”),一眼看出是编码问题还是排版问题。
可执行建议(2026年3月23日就能做):把打印通道固定为一种;编码优先试GBK/CP936;模板纸宽改成实际58mm或80mm;再打一张包含“中文+¥+·”的测试单。如果测试单只剩方块,优先处理字体库(换支持中文的驱动/机型,或切位图打印)。