OVH Cloud OVH Cloud

Caractères Unicode

1 réponse
Avatar
Nicolas Montessuit
Bonjour,

j'utilise le package awt, je tape des choses telles que :

// afficher du texte en Unicode dans un label
Label monLabel = new Label("\u1234\ufef0");
add(monLabel);

// afficher du texte en Unicode dans un champ textuel
TextField champTexte = new TextField ("\u3000\u4123\u789a",60);
add(champTexte);

Le premier bout de code affiche des ??,
le deuxième affiche du vide.

Je suppose que c'est parce que je ne dispose pas des bonnes fontes.
Où récupère-t-on les fontes Unicode, comment les installe-t-on ?

Merci !

1 réponse

Avatar
TestMan
Bonjour,

j'utilise le package awt, je tape des choses telles que :

// afficher du texte en Unicode dans un label
Label monLabel = new Label("u1234ufef0");
add(monLabel);

// afficher du texte en Unicode dans un champ textuel
TextField champTexte = new TextField ("u3000u4123u789a",60);
add(champTexte);

Le premier bout de code affiche des ??,
le deuxième affiche du vide.

Je suppose que c'est parce que je ne dispose pas des bonnes fontes.
Où récupère-t-on les fontes Unicode, comment les installe-t-on ?

Merci !


Pour être exact, les polices utilisées pour la police en cours, ne
dispose pas des glyphes correspondants aux caractères demandés, car
selon http://www.decodeunicode.org/

u1234 Etyopien
ufef0 Arabe
u3000 Chinois ?
u4123 Chinois ?
u789a Chinois ?

S'il y avait qu'une seule langue vous pourriez réutiliser des polices
existantes pour un plan unicode donné, et le "monté" dans le JDK pour
une utilisation "permanente", voir :

http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html

Mais dans votre cas, vous avez besoin de plusieurs plan et mieux faut
donc effectivement passer par une police unicode complète.

Si vous avez déjà un MS Office d'installé vous avez probablement "Arial
Unicode MS" qui est trés complet. Si ce n'est pas le cas, vous pouvez
récupérer la police Code2000 (en partagiciel) pour vos tests.

Pour l'install, c'est selon votre OS. Sous windows on met la police dans
%WINDIR%FONTS, puis il fous faudra faire un .setFont(

A noter que si votre scénario de déploiement anticipé est de type
webstart ou applet, vous allez devoir déployé également la police en
même temps (ouille!) et utiliser le Font.createFont(...) assurez vous
bien d'avoir une gestion du cache "aux petits oignons" ou gare aux temps
de lancement ...

En espérant avoir répondu à la question.

A+
TM