La jetée de l'encodage des Caractères problème
Je suis confronté à un problème avec la jetée de l'encodage des caractères. Lorsque installé le serveur jetty sur Mac (OSX), il fonctionne très bien. Mais, lorsqu'il est installé sur Ubuntu (10.10), l'encodage des caractères n'est pas bon.
Le mot dans la page (URL) ayant le problème est: Le New York Times® best-sellers
Il est présenté comme Le "New York Times� des best-sellers" de la page par le serveur sur Linux
et il est présenté comme Le "New York Times® best-sellers" de la page par le serveur sur Mac (C'est correct)
La jetée de la version du serveur est: hightide-7.0.2.v20100331
L'encodage des caractères du fichier est servi: UTF-8
Pouvez-vous s'il vous plaît laissez-moi savoir si des paramètres doivent être modifiés afin de surmonter ce problème?
Merci d'avance!
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire avec ponton 8 et résolu par l'ajout de cette ligne de bin/jetty.sh:
J'ai également eu un problème de ce genre et je tiens à remercier aditsu pour sa réponse.
Je suis à l'aide de restlet sur un serveur Jetty sur ubuntu 12.04 (et 14.04). Le restlet application est derrière un serveur Apache qui fonctionne comme un proxyPass.
Tous les fichiers UTF-8.
Tous HTTP-réponses Content-Type text/html; charset=UTF-8.
Tous les fichiers contiennent des <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
La chose étrange est que lorsque le serveur démarre et je visite le site, l'encodage des caractères n'était pas de l'UTF-8, donc j'ai eu toutes ces drôles de personnages. Même lorsque tous les signaux ont été dit le serveur et les agents et tout ce que l'UTF-8 est de codage utilisé.
Lorsque je redémarre le service manuellement après le démarrage du serveur tous les personnages sont beaux. Parce que je ne pouvais pas trouver une réponse facilement et je ne savais pas qui était à l'origine de ce mauvais encodage, j'ai gardé de redémarrer le service manuellement.
Mes candidats à cette époque étaient: Apache, Ubuntu service d'ordre de démarrage, Restlet framework, encodage de Fichier utilisé, les en-têtes HTTP, HTML des balises meta. Mais tous étaient, comme il était censé être.
Donc, en fin de compte, il a été Jetée, je voyais seulement maintenant, après avoir réexaminé la question plusieurs fois.
Je n'ai pas la moindre idée de pourquoi de départ au moment de l'amorçage du fait de l'encodage des caractères tout mal, et après un redémarrage manuel du service le codage est correct. Ajouter le supplément de JAVA argument '-Dfile.encoding=UTF-8' fait tout disparaître. Grâce à aditsu encore pour le partage de sa solution!!
Acclamations
Edit:
Settting la variable d'environnement LANG dans le script de démarrage de résoudre le problème. I. e.
export LANG=en_US.UTF-8
En fait c'est la différence entre le point de départ de la Jetée de serveur au moment du démarrage (LANG n'est pas définie hors de la boîte) et le démarrage à partir d'un shell. Donc, deux solutions pour le même problème.
L'ai eu; pour moi, il manquait tête de codage de la JSP:
Vous êtes probablement en train de lire directement http brut d'encodage et vous avez besoin de le décoder pour de l'utf-8 à l'aide du Décodeur.
utiliser java.net.URLDecoder
ligne = URLDecoder.décoder(ligne, "UTF-8");
Pour l'encodage de texte au format html charset, utilisez URLEncoder, comme lorsque java Chaîne directement à la poste, à:
ligne = URLEncoder.coder(ligne, "UTF-8");