Les caractères UTF-8 manquants ou affichées sous forme de cases dans le bloc-notes, mais qui fonctionne bien dans le navigateur web et d'autres éditeurs de texte
J'ai UTF-8 de texte stockés dans la bd et a servi comme text/plain; charset=utf-8
dans une application web. Toutes les choses fonctionnent très bien. Je peux voir le texte UTF-8 sur la fenêtre du navigateur, sans aucun problème.
Mais lorsque j'enregistre que du texte dans un fichier et essayez de l'ouvrir dans le bloc-notes de Windows, j'ai eu quelques caractères manquants et affichée dans une petite boîte rectangulaire. Toutefois, le fichier texte semble bien en d'autres éditeurs tels que EditPlus et Notepad++.
Comment est-il la cause et comment puis-je le résoudre?
Si je comprends bien, les personnages sont seulement rompu lorsque vous ouvrez le fichier avec le bloc-notes, mais avec tous les autres outils que tout est ok. Alors je soupçonne le bloc-notes pour être incapable de faire face avec UTF-8, ce qui ne serait pas une surprise pour moi. Dans Notepad++, vous devez être en mesure de voir l'encodage utilisé. Je n'ai pas la version anglaise à la main, mais il doit être le cinquième dans le menu de gauche et appelé "Encodage". Cela devrait vous montrer ce que l'encodage du fichier est stocké.
OriginalL'auteur JAVAGeek | 2012-07-10
Vous devez vous connecter pour publier un commentaire.
Si il semble bien, en d'autres éditeurs, le texte lui-même est très bien. Si cela semble OK dans le navigateur, puis la réponse est sans doute très bien aussi (mais mieux vaut vérifier l'info sur la page dans le navigateur et de voir quel est l'encodage). Votre problème est probablement avec le bloc-notes. Parfois, il exige de la NOMENCLATURE pour détecter Unicode correctement. Mais NOMENCLATURE peut casser d'autres applications qui n'ont pas de soutien. Vous devriez aussi essayer le bloc-notes sur les différentes versions de Windows. J'ai juste essayé d'ouvrir un fichier UTF-8 dans Windows 7, semble bien pour moi.
si c'est vraiment ANSI ensuite le bloc-notes ne devriez pas avoir des problèmes avec la lecture. Cela signifie que Notepad++ qui est mal, et ce n'est pas la norme ANSI. En UTF-8 Notepad++ signifie "UTF-8 avec BOM", qui n'est pas strictement exact, comme l'UTF-8 sans BOM UTF-8. Pour vous en assurer, regardez votre fichier à l'aide de certains hex viewer - si les symboles à l'extérieur de l'ASCII 7 bits sont codés de 2 octets ou plus, alors il est vraiment UTF-8.
OriginalL'auteur Sergei Tachenov
Si vous utilisez tomcat comme serveur d'applications que vous pouvez ajouter à cela sa configuration:
"-Dfile.encoding=UTF-8"
Aussi, jetez un oeil ici:
Le réglage par défaut de Java codage de caractères?
OriginalL'auteur mihaisimi
Vous avez besoin pour l'utiliser comme ci-dessous:
réponse.setContentType("text/html; charset=utf-8");
réponse.setCharacterEncoding("UTF-8");
OriginalL'auteur Minh