[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 !

5 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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
  2. 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
  3. fibo
     
    Bon finalement j'ai peut être trouvé le script qui conviendrait. Je vais faire les tests. Merci !
    0
  4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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