[JAVA] Problème avec les accents et Linux

fibo -  
 fxecbre -
Bonjour,
je travaille avec des fichiers XML en UTF-8 que je dois utiliser sous Linux. Le problème c'est que j'ai des accents dans ces fichiers.

Pour que ça s'enregistre bien, j'ai mis les textes en UTF-8 (par exemple "Réaliser" -> "Réaliser") le problème c'est que sous Linux ça s'affiche aussi "Réaliser" (sous Windows ça affiche bien "Réaliser").

J'ai essayé en unicode ("Réaliser" -> "R\u00E9aliser") mais là java n'interprète plus comme la String "Réaliser" mais comme "R\\u00E9aliser" donc ça affiche "R\u00E9aliser". Bref je ne vois plus comment faire... Si quelqu'un a une piste...

Autre question : existe-t-il une méthode Java pour faire la convertion ASCII / Unicode ("Réaliser" <-> "R\u00E9aliser") ?

Merci d'avance pour vos réponses !
A voir également:

5 réponses

fiddy Messages postés 11653 Statut Contributeur 1 847
 
Salut,

As-tu essayé utf-16 ?

Sinon, oui il existe des méthodes pour la conversion

ascii unicode : méthode getBytes("") de String
unicode ascii : dans le constructeur de String.

Cordialement
0
fibo
 
Merci beaucoup pour vos réponses.

Un problème pour le fichier XML c'est qu'il est utilisé par une autre application et à priori c'est forcément du UTF-8.

Je viens de voir pour la méthode getBytes(). Ça retourne bien un tableau de byte mais comment faire le lien entre ce byte et la chaîne en "\u0..." ?

Pour le "& eacute ;", c'était une bonne idée. Par contre le parser XML bloque sur la lecture...

Bref pour le moment je n'ai pas encore résolu mon problème.

Merci.
0
fibo
 
Bon finalement j'ai peut être trouvé le script qui conviendrait. Je vais faire les tests. Merci !
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
J'ai un peu de mal avec ces codages de caractère, mais pour moi ASCII est une norme dont seulement les 128 premiers caractères sont fixé(et qui n'en contient que 128), et le "é" n'en fait pas partie. ensuite, tu as des codes caractères ASCII étendu sur 8bit (au lieu de 7)
mais là encore ce n'est pas standard. Je pense que l'idéal c'est unicode. Sacahant qu'il me semble que les 128 premiers caractères de unicode sont ceux d'ASCII.
ensuite, tu parle du problème d'affichage, oui ! mais sur quoi ?
Tu as beau encoder ton caractère n unicode si le logiciel de visualisation n'est pas capable de le lire...
donc le "Réaliser" qui apparaît sous Linux pourrai très bien s'aficher de manière voulu en configurant correctement l'affichage.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phil232 Messages postés 610 Statut Membre 178
 
t'as déjà essayé "é" ?
-3
fxecbre
 
pas marrant... il aurait surement pas posé la question sinon, bolossssssSsS :)
0