Rehber › ZPL'de özel karakterler bozuk basılıyor

ZPL'de özel karakterler bozuk basılıyor

Yayın tarihi:

Sağlık raporu

Ö, Ö oluyor; ü, ü oluyor; ş iki çöp simgeye dönüyor. Veri sisteminizde doğru, dosyada doğru — etikette yanlış. Bu bozulma değildir; iki tarafın aynı baytları farklı tablolarla çözmesidir.

Baytlara gerçekte ne oluyor

Modern sistemler metni UTF-8 yazar; Ö orada iki bayttır. Talimat almamış bir Zebra yazıcı ^FD verisini varsayılan eski kod sayfasıyla çözer — her bayt bir karakterdir — ve o iki bayt iki yanlış karakter olarak basılır. İmza kesindir: her aksanlı harf iki karakterlik bir çifte dönüşür, çevresindeki düz ASCII kusursuz kalır.

Çözüm: ^CI28 ile UTF-8 beyan edin

Formatın başına, ilk ^FD'den önce bir kez ^CI28 koyun. Yazıcıya alan verisini UTF-8 olarak çözmesini söyler — sisteminizin zaten yaptığı varsayımın aynısını. Diğer sayısal ^CI değerleri tek baytlık eski tablolar seçer ve yalnız birkaç konumu değiştirir; gerçek çok dilli metin için gönderdiğinizle eşleşen değer 28'dir.

^XA
^CI28
^FO50,50^A0N,40,40^FDGüvenli Ölçüm — Şişli^FS
^XZ

Önizleme doğru görünürken yazıcı neden yanlış basar

Ekranda test etmenin dürüst ayrıntısı: tarayıcı önizlemesi (bizimki dahil) baştan sona UTF-8 varsayar; bu yüzden ^CI28 olmayan bir dosya önizlemede kusursuz görünüp varsayılanı eski sayfa olan yazıcıda yine bozuk basabilir. Yapısal denetim bu yüzden 28 dışındaki sayısal ^CI'yi uyarır; çok dilli metni donanıma göndermeden önce gözle bakılacak şey ^CI28'in varlığıdır.

İkinci katman: font o harfin çizimini içermeli

Kodlama doğru karakter kodunu ulaştırır; fontun o karakterin şeklini içermesi gerekir. Yazıcının gömülü fontları Latin alfabelerini iyi kapsar ama her şeyi değil. Doğru kodlanmış karakter boşluk ya da kutu basılıyorsa, harfi içeren bir TTF yükleyin (~DU) ve ^A@ ile çağırın — etiket, yazıcıda font olmasını ummak yerine kendi fontunu taşır.

Kontrol karakterleri: ^FH

Yazamadığınız baytlar için — ya da aradaki bir entegrasyon ham yüksek baytları bozuyorsa — ^FH alanı hex kaçışına geçirir: ^FH^FD_C3_96^FS Ö'yü değeriyle basar. UTF-8 baytlarını koruması güvenilmeyen ara sistemlerden geçen üretilmiş dosyalar için sağlam yol budur.

Sık sorulan sorular

ş, ğ, ö neden iki çöp karakter olarak basılıyor?

Sisteminiz UTF-8 gönderir; aksanlı harf orada iki bayttır. Talimat almamış yazıcı bunları tek baytlık eski kod sayfasıyla çözer ve iki yanlış karakter basar. Formatın başına, ilk ^FD'den önce ^CI28 ekleyin.

Önizlemede doğru görünüp yazıcıda neden bozuk çıkıyor?

Tarayıcı önizlemesi baştan sona UTF-8 varsayar; ^CI28 olmayan dosya ekranda kusursuz görünüp varsayılanı eski sayfa olan donanımda yine bozuk basabilir. Çok dilli metni göndermeden önce ^CI28'in varlığını kontrol edin.

^CI28 var ama karakter kutu olarak basılıyor — neden?

Kodlama karakterin kodunu ulaştırır; fontun o karakterin şeklini içermesi gerekir. Harfi içeren TTF'yi ~DU ile yükleyip ^A@ ile çağırın — etiket, yazıcının gömülü fontlarına bel bağlamak yerine kendi fontunu taşır.

İlgili yazılar

ZPL nedir?

ZPL, Zebra termal yazıcıların anladığı komut dilidir. Komutların nasıl okunacağını, bir etiketin nasıl kurulduğunu ve en sık yapılan hataları anlatıyoruz.

Hangi barkod türünü seçmeliyim?

EAN-13 mi, Code 128 mi, QR mı? Barkod türünü veriye, alana ve okuyucuya göre seçmenin pratik kuralları.

ZPL dosyası yazıcısız nasıl önizlenir?

ZPL dosyası yalnızca metindir — etiket ancak biri onu çizdiğinde var olur. ZPL etiketini yazıcıya gitmeden görmenin üç pratik yolu.

Kendi ZPL kodunuzu deneyin →