lecture de fichiers avec des caractères accentués dans Java
Je suis tombé sur deux caractères spéciaux qui ne semblent pas être couverts par la ISO-8859-1
jeu de caractères c'est à dire qu'ils ne se rendent pas grâce à mon programme.
L'Allemand ß
et le norvégien ø
je suis en train de lire les fichiers comme suit:
FileInputStream inputFile = new FileInputStream(corpus[i]);
InputStreamReader ir = new InputStreamReader(inputFile, "ISO-8859-1") ;
Est-il un moyen pour moi de lire ces caractères sans avoir à appliquer manuel de remplacement comme une solution de contournement?
[MODIFIER]
c'est à quoi il ressemble à l'écran. Notez que je n'ai pas de problèmes avec d'autres accents par exemple, è et le lot...
Êtes-vous absolument sûr que le eszett est 0xdf dans le fichier et ils ne sont pas lus dans le programme (comme char 0x1E9E), plutôt que de ne pas affichée par la police que vous utilisez pour la sortie?
Je ne suis pas sûr. Je suis en utilisant le texte copié et collé à partir de la Déclaration Universelle des Droits de l'Homme trouvé ici: ohchr.org/EN/UDHR/Pages/SearchByLang.aspx
Je ne suis pas sûr. Je suis en utilisant le texte copié et collé à partir de la Déclaration Universelle des Droits de l'Homme trouvé ici: ohchr.org/EN/UDHR/Pages/SearchByLang.aspx
OriginalL'auteur | 2011-04-30
Vous devez vous connecter pour publier un commentaire.
Les deux personnages sont présents dans la norme ISO-Latin-1 (vérifier mon nom pour voir pourquoi j'ai regardé dans cette).
Si les personnages ne sont pas lus correctement, la cause la plus probable est que le texte dans le fichier n'est pas enregistré lors de l'encodage, mais dans quelque chose d'autre.
Selon votre système d'exploitation et l'origine du fichier, possible codages pourrait être en UTF-8 ou Windows code page 850 ou 437.
La façon la plus simple est de regarder le fichier avec un éditeur hexadécimal et de faire rapport de ce que des valeurs exactes sont enregistrés pour ces deux personnages.
joli beaucoup chaque fois, vous devez simplement utiliser de l'UTF-8.
ok. merci pour la suggestion!
OriginalL'auteur Thorbjørn Ravn Andersen
En supposant que votre fichier est probablement UTF-8 codé, essayez ceci:
OriginalL'auteur WhiteFang34
ISO-8859-1 couvre ß ø, de sorte que le fichier est probablement sauvé dans un autre encodage. Vous devez passer dans le codage du fichier à
new InputStreamReader()
.Oui, il est incomplet de la couverture, mais pas pour les personnages que vous avez mentionné dans votre question.
oui, précisément le caractère ø n'est pas couvert
Non,
Ø
etø
sont couverts, maisǾ
etǿ
sont manquants.Et
ø̈
est également absent.OriginalL'auteur Matt Ball