2008-09-26 11 views
3

J'ai regardé la documentation java et parcouru le net pour obtenir des informations sur le support de Java pour les caractères internationaux avec des polices spécifiques (comme Monospace), mais je n'ai pas pu obtenir de réponse claire.Java, unicode et polices

Il y a eu un changement entre java 1.4 et java 1.5/1.6. Par exemple, dans Java 1.4 si vous définissez la police sur un JTextArea à Monospace, il ne sera pas capable de gérer les caractères étrangers (obtenir des rectangles à la place), mais en java 1.5/1.6, il semble fonctionner correctement.

Ces différences/support amélioré sont-ils clairement documentés n'importe où?

Merci

Répondre

2

De Internationalization Enhancements:

texte multilingue rendu

Pour imprimer le texte multilingue, en utilisant les polices logiques, 2D prend maintenant avantage des polices OS hôte installé pour tous les systèmes d'écriture pris en charge. Par exemple, si vous exécutez dans un environnement de paramètres régionaux thaïlandais, mais que des polices coréennes sont installées, le thaïlandais et le coréen sont rendus. Le JRE détecte maintenant automatiquement les polices physiques installées dans son répertoire lib/fonts/fallback et ajoute ces polices physiques à toutes les polices logiques pour le rendu 2D.

Utilisation des API Unicode sur Windows

AWT utilise désormais les API Unicode sur Windows 2000/XP. Par conséquent, certains de ses composants peuvent gérer du texte sans être limités par les paramètres régionaux de Windows. Par exemple, les composants de texte AWT peuvent accepter et afficher du texte dans le système d'écriture Devanagari, quels que soient les paramètres régionaux de Windows. (emphase mienne)

0

Comment "étranger" sont ces caractères? La plupart des polices basées sur le latin peuvent gérer au moins les lettres accentuées et autres caractères dans la moitié supérieure de l'ISO-8859-1, mais je ne pense pas que vous pouvez raisonnablement compter sur un support pour autre chose.

Votre meilleur choix est généralement de laisser l'utilisateur choisir parmi une liste de polices prises en charge, que vous récupérez du système d'exploitation sous-jacent. Si vous ne pouvez pas le faire, ou si vous ne le souhaitez pas, vous pouvez utiliser l'approche CSS: parcourez une liste de polices acceptables et utilisez la première que vous trouverez.

Pour remplir la liste, utilisez simplement Google pour les "polices programmeur" ou les "polices monospace". Je n'ai jamais aimé les polices logiques de Java, en particulier Monospace, qui est soit Courier ou Courier New sur une boîte de Windows. J'ai arrêté de l'utiliser il y a des années.