Java: encodage d'une string

Résolu/Fermé
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 19 avril 2008 à 16:04
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 22 avril 2008 à 09:00
Bonjour,
bon la question n'est pas nouvelle mais j'aimerai avoir une réponse nette et précise alors je mets mon post sur le problème d'affichage des accents :

j'ai une string contenant un ou plusieurs accents, je souhaiterai l'afficher sans avoir des probleme de réprésentation des accents et ce peu importe l'OS.

En gros j'ai un programme qui n'affiche pas la meme chose sous windows et sous linux. Je suis obligé d'utlisé une string (que j'affiche dans un JLabel) mais comment la rendre "lisible".

je vous remercie
A voir également:

8 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 avril 2008 à 16:00
Salut.
Pour moi, un string, c'est en fait un tableau d'entier, ensuite la correspondance entre un entier et et son graphe (ou sa lettre, comme tu veux, mais je trouve que voir la lettre comme une image permet de mieux apréhender le problème) dépend de l'éditeur avec lequel tu regarde la chaîne.
Ensuite, viens le problème d'unicode qui complexifie la lecture des fichiers textes (en ascii c'est simple, tu lis 7 ou 8 bit et ça correspond à une lettre).
Tout viens surment d'un problème d'encodage de lettre. Comment transfert tu tes fichiers textes de Linux à Win ? si c'est par ftp, vérifie bien que tu es en mode binaire.
1
UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 35
21 avril 2008 à 16:41
ah ok, effectivement c'est un problème d'encryptage
je crois que le text ecrit en linux est en utf
essaie de travailler avec
DataInputStream lecteur = new DataInputStream(new BufferedInputStream(new FileInputStream(....)));
lecteur.readUTF();
1
UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 35
21 avril 2008 à 10:38
Normalement ta chaine elle est la meme partout!
sauf sans le cas ou tu es entrain de l'extraire depuis une BD là y'a des eventuels problèmes
java fonctionne en UNICODE contrairement au c/c++ qui supporte les char(1 octet) et les unsigned int (2 octets) pour representer un caractère.
tu travailles sur des champs extraits de base de données ?
0
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
21 avril 2008 à 13:32
Salut UaLShark,

malheureusement, je crois que ton affirmation, sur l'aspect d'une chaine qui est selon toi la meme partout, est fausse et c'est pourquoi je pose la question. Aussi ma string n'est pas extraite d'une BDD.

Ensuite il me sempblait qu' n int qu'il soit unsigned ou pas est codé sur 4 octets ce qui permet d'utilisé le bit de poids fort pour le signe ce qui signifie que ce dernier peut etre utilisé pour le unsigned pour coder un int plus long (enfin je me comprends).

néanmoins, je ne sais toujours pas comment affiché ma string correctement dans un label sans avoir de probleme d'affichage sur les accents.

merci tout de meme
0

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

Posez votre question
UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 35
21 avril 2008 à 15:34
re daronmaster;
wé c vrai j ai fait une gaffe c'est unsigned short ....
Bon la seule explication popur ce qui se passe dans ton cas et que tu travailles avec un editeur non win 32 comme l'editeur de dos ? si oui voila le pb!
non encore?
0
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
21 avril 2008 à 15:52
bon je récapitule, car je me suis mal expliqué :

j'ai des fichier .txt ecrit avec java.

je lis ces fichiers avec des bufferedReader et je souhaite mettre les lignes de ces fichiers dans differents label.

j'utilise la mthode readline() des bufferedReader qui renvoie une string et c'est cette string que je souhaite mettre dans mon label.

au départ je suis sous linux lorsque j'ai fait mon programme à l'aide de netbeans, mais lorsque je passe sous windows j'ai ces fameux problemes d'affichage des accents.

voila, j'espere t'avoir eclairer

merci pour ton aide
0
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
21 avril 2008 à 18:13
ok donc la string retournée par cette methode sera bien encodée.

je te remercie sincerement j'essaie ça et je passe en résolu si tout est ok, je te tiens au courant

merci
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
22 avril 2008 à 09:00
regarde ce message de kij_82, il contient un lien très intéressant pour toi.
http://www.commentcamarche.net/forum/affich 6041576 java detection encoding utf 8
0