2010-03-22 4 views
1

Je suis confronté à un problème d'encodage qui m'a bloqué pendant quelques semaines et rien ne semble fonctionner. J'ai un site Web qui fonctionne bien sur ma machine locale, mais lorsque j'appuie les fichiers jsp sur une machine Linux pour la réviser, les caractères qui étaient rendus correctement apparaissent maintenant comme des caractères géniaux.Je rencontre des problèmes d'encodage sur Linux, pas Windows

Pour une raison quelconque, certains caractères s'affichent correctement, mais les autres caractères ne sont pas correctement codés. Tout le texte sur la page est en train d'être lu à partir des fichiers java .properties et est édité sur la page en utilisant des beans.

J'ai ajouté une balise meta à la page pour définir le codage, qui n'a rien fait. J'ai également ajouté <% @ page contentType = "text/html; jeu de caractères = UTF-8" pageEncoding = "UTF-8"%> mais cela n'a rien fait sur la machine Linux et fait apparaître les erreurs d'encodage sur ma machine Windows locale.

Toute aide serait grandement appréciée.

+0

Vérifiez et vérifiez les paramètres régionaux avec lesquels le serveur s'exécute sur la machine Linux. (Les variables d'environnement "LC_ALL" ou "LANG" sont définies.) – Pointy

Répondre

1

Vérifiez que la méthode du chargement des propriétés utilise le codage de caractères que les fichiers de propriétés sont réellement écrites en.

Sans paramètre explicite cela, l'encodage par défaut du système de fichiers est utilisé, et il est certifié ISO-Latin -1 sous Windows et UTF-8 sur certaines distributions Linux.

1

La nécessité suivante pour jouer ensemble pour le codage des caractères pour fonctionner correctement dans Nixes et Nuxes: connecteur

  • système de fichiers encodage
  • encodage de base de données
  • (ne semble pas appliquer) base de données
  • encodage
  • Codage de chaîne interne à Java (UTF-16, si mes souvenirs sont bons)
  • Codage de sortie Java
  • Codage de page HTML

Avec votre directive de page, vous avez uniquement adressé la dernière puce. En d'autres termes, vous demandez au navigateur de décoder la page en UTF-8, mais ce n'est pas ce que vous envoyez.

Jetez un coup d'œil à this (admittedly a few years old) paper, chapitre 11 en particulier.

0

Vérifiez également les fichiers physiques sur les deux machines. J'ai vu plusieurs clients FTP copier des fichiers pendant le transfert. Une vérification rapide consiste à pousser votre fichier au format html au lieu de jsp. Vous obtiendrez des déchets pour toutes les séquences <% %>, mais l'autre texte devrait apparaître inchangé. Vous avez également supprimé le serveur d'applications de l'équation. Si le texte est encore funky, c'est votre client FTP ou WebDAV qui essaie de "vous aider".

0

Regardez les en-têtes http envoyés par le serveur. C'est le premier endroit où le navigateur recherche l'encodage avant toute chose.

Questions connexes