La ñ y los acentos salen mal al imprimir ZPL: cómo corregirlo
Los números y las letras sin acento se imprimen bien, pero España aparece como España o Café como Café. Este caso suele apuntar a una diferencia entre la codificación enviada y la que interpreta la impresora. Si aparecen cuadrados o huecos, también hay que revisar la fuente.
La corrección en tres puntos
Envía bytes UTF-8, coloca ^CI28 antes de los campos de texto y usa una fuente con los caracteres necesarios. ^CI28 selecciona la interpretación de los bytes: no convierte un archivo Windows-1252 ni repara texto que ya llega corrupto.

1. Identifica qué está fallando
Si ves España, busca una conversión de texto incorrecta: esos caracteres son una pista, no una prueba de dónde ocurrió. Si ves un cuadrado, un signo de interrogación o un espacio, puede faltar el carácter en la fuente o haberse perdido antes de imprimir. Si la etiqueta muestra literalmente ^XA o ^FD, consulta la guía de texto ilegible enlazada al final.
2. Envía UTF-8 y declara ^CI28
Abre el archivo como UTF-8 y comprueba que contiene España, no España. En la aplicación que envía el trabajo, codifica el texto en UTF-8 una sola vez y revisa que el controlador o servicio de impresión no lo convierta después. Pon ^CI28 al principio de cada formato y comprueba que ningún ^CI posterior cambie la codificación antes del campo afectado. Las entidades HTML y los escapes JSON deben resolverse antes de construir el ZPL.
3. Prueba una etiqueta mínima
Este ejemplo utiliza la fuente 0 y un área de aproximadamente 60 × 40 mm a 203 DPI. Imprime con el mismo canal que falla y compara el resultado con el texto esperado. La vista previa permite revisar el contenido y la distribución, pero no demuestra qué bytes recibe la Zebra ni qué caracteres contiene su fuente.
Ejemplo con texto UTF-8
^XA
^CI28
^PW480
^LL320
^LH0,0
^FO24,30^A0N,28,28^FDEspaña - Café^FS
^FO24,85^A0N,28,28^FDá é í ó ú ñ ü^FS
^XZResultado esperado
España - Café
á é í ó ú ñ ü
4. Aísla el envío con ^FH
La segunda prueba expresa los bytes UTF-8 en hexadecimal y contiene únicamente caracteres ASCII. ^FH activa los escapes para el campo siguiente; el indicador predeterminado es el guion bajo. Repite ^FH en cada campo que lo necesite. Si esta versión imprime bien y la anterior no, revisa la codificación del archivo y el envío. Si ambas fallan, comprueba también la fuente, la compatibilidad del firmware y los comandos que añade la aplicación.
La misma primera línea con bytes hexadecimales
^XA
^CI28
^PW480
^LL320
^LH0,0
^FO24,30^A0N,28,28^FH^FDEspa_C3_B1a - Caf_C3_A9^FS
^XZResultado esperado
España - Café
Con UTF-8, ñ son dos bytes: C3 B1. _F1 no es una ñ válida en UTF-8. Copia la prueba hexadecimal al canal de envío de la impresora, sin volver a convertir los escapes.
| Carácter | Bytes UTF-8 | Dentro de ^FH / ^FD |
|---|---|---|
| ñ | C3 B1 | _C3_B1 |
| é | C3 A9 | _C3_A9 |
| á | C3 A1 | _C3_A1 |
| ü | C3 BC | _C3_BC |
5. Si faltan caracteres, revisa la fuente
Mantén ^CI28 y prueba una fuente que incluya los glifos necesarios. Una fuente Unicode descargada puede seleccionarse con ^A@ o asociarse mediante ^CW, siguiendo la documentación del equipo. En impresoras antiguas, confirma que el firmware admite ^CI28. Valida después nombres y direcciones reales: resolver ñ y é no garantiza que la misma fuente incluya todos los alfabetos.
Preguntas frecuentes
¿Dónde se pone ^CI28?
Después de ^XA y antes de los campos que contienen texto UTF-8. Decláralo en cada formato para no depender del estado dejado por otro trabajo.
¿Por qué ^CI28 no arregla España?
Porque el texto puede haberse corrompido antes o seguir enviándose en otra codificación. Corrige el origen y comprueba los bytes que entrega la aplicación.
¿^FH sustituye a ^CI28?
No. ^FH representa bytes mediante escapes; ^CI28 indica cómo interpretarlos. El ejemplo necesita ambos.
¿Tengo que cambiar velocidad u oscuridad?
No para corregir una codificación. Si los caracteres se sustituyen de forma consistente, revisa texto, codificación y fuente. Los defectos físicos de impresión requieren otro diagnóstico.
Guías relacionadas
La Zebra imprime texto ilegible o comandos ZPLDocumentación oficial de Zebra
Sobre el autor
Eduard Diaz
Eduard Diaz es técnico IT (desarrollo) en S-IE, partner oficial de Zebra con más de 20 años ofreciendo servicios de identificación y etiquetado. Desarrolla y mantiene EditorZPL para facilitar el trabajo con ZPL e impresoras de etiquetas Zebra.
s-ie.cat