Aller au contenu

Imprimante Zebra : Encodage particulier


captain_torche

Sujets conseillés

Je suis en train de travailler avec une imprimante our étiquettes Zebra, et je galère quelque peu avec l'encodage des caractères.


 


Dans l'éditeur de templates, quand j'écris un "é", il sera transformé en "\82" dans le fichier, et imprimé correctement en "é".


 


Par contre, je ne trouve pas la logique de correspondance "é => 82" pour pouvoir l'appliquer aux textes issus de ma base de données qui seront intégrés dans l'étiquette.


 


Si quelqu'un a une piste, ça me dépannerait beaucoup. Merci d'avance !


Lien vers le commentaire
Partager sur d’autres sites

Ceci fonctionne aussi :



print dechex(ord(iconv('UTF-8','CP850',"é")));

et donne 82 à l'affichage (dans la mesure où tu entres ce "é" en UTF bien sur) wink.gif


Lien vers le commentaire
Partager sur d’autres sites

Et voilà ma fonction définitive : on ne remplace que les caractères ASCII étendus (>= 128) :
 

function zebraConvert($text)    {        $return = '';        $arr = str_split(iconv('UTF-8', 'CP437//TRANSLIT', $text));        foreach ($arr as $letter) {            $ord = ord($letter);            if ($ord >= 128) {                $return .= '\\' . dechex($ord);            } else {                $return .= $letter;            }        }        return $return;    }

Edit : on a fait la même chose, grosso modo, sauf que je l'ai volontairement étendu à des messages plus longs, et que je ne fais la conversion que pour les caractères ASCII étendus.

Lien vers le commentaire
Partager sur d’autres sites

Moi je n'ai pas écrit un programme, juste donné une piste ...


Tu sais bien que les admins système sont des feignants, non ? laugh.gif


 


Et je me suis assez fait ch... avec la conversion de la base du Hub en UTF-8 ...


Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...