code Java tronqué sous Linux

angryTom
Libérer: 2019-11-07 09:18:26
original
3204 Les gens l'ont consulté

code Java tronqué sous Linux

Causes et solutions aux caractères tronqués en langage Java

a) Un programme d'interface graphique basé sur awt (swing) affiche des caractères tronqués en chinois

Dans les programmes d'interface graphique basés sur awt (swing), l'affichage chinois dans le menu apparaîtra généralement tronqué. La raison est généralement que la JVM ne trouve pas la police pour afficher le chinois. font sous l'installation d'origine, et les versions de distribution de Linux sont différentes, et les chemins et noms de leurs polices sont différents, de sorte que la JVM ne peut généralement pas trouver les polices incluses dans le système d'exploitation Linux. La solution consiste à autoriser la JVM à le faire. recherchez les polices incluses dans le système d'exploitation Linux. Par exemple, sous Redflag 6.0, vous pouvez utiliser la commande suivante pour résoudre le problème :

mkdir /usr/java/jdk1.6.0/jre/lib/fonts/fallback 
ln -s /usr/share/fonts/chinese/TrueType/*.ttf /usr/java/jdk1.6.0/jre/lib/fonts/fallback
Copier après la connexion

Généralement, il n'est pas nécessaire de modifier le fichier de configuration des polices (fontconfig. OS.Version.properties) dans le répertoire JRE/lib/.

b) Le navigateur client système basé sur la structure B/S JSP (Servlet) affiche des caractères chinois tronqués

Les caractères chinois dans la page affichent des caractères tronqués

Pour le contenu statique comme pour un fichier HTML, le jeu de caractères du fichier doit uniquement être le même que celui défini à l'emplacement le fichier.

Pour les fichiers dynamiques comme JSP et Servlet, ils doivent être compilés. Pendant le fonctionnement, la JVM interprète le fichier de classe pour générer le fichier HTML requis par le navigateur client. Si des caractères chinois tronqués sont générés, c'est généralement le cas. compilé et exécuté généré au cours du processus. Si vous utilisez des distributions et des serveurs Linux commerciaux, il vous suffit généralement d'enregistrer le fichier JSP ou Servlet en tant que jeu de caractères UTF-8 et de définir Réglez-le simplement sur UTF-8. Si des caractères tronqués apparaissent toujours, vous pouvez le résoudre à l'aide des méthodes suivantes :

① Si le serveur est développé indépendamment, vous pouvez modifier le code source pour spécifier la JVM pour lire les fichiers, écrire des fichiers et générer des fichiers HTML. requis par le navigateur client. , la méthode de codage lors de la conversion de chaînes et de flux de séquences binaires, résolvant ainsi fondamentalement le problème et améliorant l'adaptabilité du serveur. Dans MyWebServer 2.0, j'ai adopté cette méthode, et le code est le suivant :

new BufferedReader(new InputStreamReader(new FileInputStream(jspfile),”GBK”)); 
new PrintWriter(serfile,”GBK”); 
new PrintWriter(new OutputStreamWriter(os,”GBK”));
Copier après la connexion

② Bien entendu, vous pouvez également modifier le paramètre "locale" de la JVM dans le fichier d'entrée du serveur (c'est-à-dire le fichier contenant la sous-fonction principale). Le code est le suivant :

Locale.setDefault(new Locale(“zh”,”CN”));
Copier après la connexion

③. Lorsque vous utilisez un serveur commercial, vous pouvez modifier le fichier shell qui démarre le serveur, définir la variable d'environnement "export LC_ALL=zh_CN.UTF-8" avant de démarrer le serveur, modifiant ainsi la valeur "locale" par défaut sous cette console.

④ Bien sûr, vous pouvez également modifier les paramètres « locales » du système d'exploitation, mais comme la modification des paramètres « locales » du système d'exploitation affectera d'autres applications, cette méthode est généralement utilisée.

La principale raison de l'utilisation de la méthode ci-dessus est que lorsque la JVM est démarrée pour la première fois, la "locale" du système d'exploitation sera définie sur la "locale" par défaut de la JVM lorsque le ". locale" n'est pas définie dans le système d'exploitation, la JVM définira la "locale" par défaut de la JVM sur la "locale" par défaut de la JVM. Bien sûr, vous pouvez également modifier le paramètre "locale" par défaut de la JVM lorsque exécutant l'application. Lorsque la JVM convertit des chaînes en flux de séquence binaire, si la méthode de codage est spécifiée, elle sera convertie dans la méthode de codage spécifiée, sinon elle sera convertie selon les "locales" par défaut de la JVM.

Conclusion

Les caractères tronqués générés par le langage Java en affichage chinois sous Linux sont principalement liés à la bibliothèque de polices de la JVM, aux paramètres régionaux du système d'exploitation, à la paramètres régionaux par défaut de la JVM et de l'application Les paramètres régionaux et le flux de séquence binaire directement spécifié dans l'application sont liés au jeu de caractères de conversion de chaîne. Cela est dû aux différentes méthodes de codage de caractères utilisées dans le processus de conversion mutuelle des flux de séquences binaires et des chaînes, ou la JVM ne peut pas trouver la police requise. Différentes méthodes peuvent être utilisées pour le résoudre. La méthode spécifique à utiliser dépend du traitement spécifique. .environnement applicatif.

Recommandé : [Tutoriel vidéo Linux]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!