Question : pb accents en utf8 - Java - Programmation
Marsh Posté le 22-08-2003 à 08:58:22
Bin tu peux pas mettre d'accents en UTF-8
Utilise un code ISO-8859-1 par exemple à la place. Y a des gens qui se cherchent des problèmes, exagéré
Marsh Posté le 22-08-2003 à 09:51:56
DarkLord a écrit : Bin tu peux pas mettre d'accents en UTF-8 |
Bon, Ok! J'ai une autre question.
Voici mon code pour transformer une chaine, codée en ISO, en UTF-8.
Apparement il ne marche pas puisqu'il met des points d'interogation à la place des accents. Y'a-t-il une explication?
Merci de ta patience !
Code :
|
Marsh Posté le 22-08-2003 à 09:57:20
DarkLord a écrit : Bin tu peux pas mettre d'accents en UTF-8 |
bien ssûr que tu peux ... à condition d'enregistrer le fichier en UTF-8 et de le lire ensuite en UTF-8
Marsh Posté le 22-08-2003 à 09:57:39
DarkLord a écrit : Bin tu peux pas mettre d'accents en UTF-8 |
tout marche très bien en utf-8. aussure toi que ton source est en UTF-8 et que le navigateur en face est capable de le décoder. l'utf-8, c'est bien mieux que tous ces iso à la con.
Marsh Posté le 22-08-2003 à 10:01:09
pilou50 a écrit :
|
ce que tu fais n'a pas de sens : une String en Java n'a pas de codage. C'est au moment où tu vas transformer ta Strig java en donnée binaire (écriture dans un fichier) que là c'est important d'utiliser le bon encodage.
mais l'opération que tu fais au dessus n'as pas sens ...
Marsh Posté le 22-08-2003 à 10:01:32
Taz a écrit : tout marche très bien en utf-8. aussure toi que ton source est en UTF-8 et que le navigateur en face est capable de le décoder. l'utf-8, c'est bien mieux que tous ces iso à la con. |
euh ok
pq qd j'écris un document XML en UTF-8 avec un accents il me jette (que ce soit mozilla, IE ou autre)
qqun peut m'expliquer?
Marsh Posté le 22-08-2003 à 10:18:41
Taz a écrit : il te jète comment? |
w8 je fais un test
Marsh Posté le 22-08-2003 à 10:21:21
Taz a écrit : il te jète comment? |
Mon test
Code :
|
mozilla ne me jette pas mais j'ai des caractères bizarres comme prévu
Citation : |
IE
Citation : |
Marsh Posté le 22-08-2003 à 10:24:32
benou a écrit : |
Merci, ton explication est claire.
Mais je veux écrire en utf8 sur la sortie standard (System.out) et aussi dans un fichier. Comment je peux faire?
Merci !
Marsh Posté le 22-08-2003 à 10:29:31
Taz a écrit : il te manque un " blaireau |
le blaireau il t'emmerde pov type. Regarde mon edit déjà
Marsh Posté le 22-08-2003 à 10:38:48
pilou50 a écrit : |
Code :
|
Marsh Posté le 22-08-2003 à 10:40:22
DarkLord a écrit : |
surement parce que ton fichier n'est pas sauvegarder (au sens stockage binaire) en UTF-8 mais en ISO-machin-1 (qui est l'encodage par défaut des OS européens)
Marsh Posté le 22-08-2003 à 10:41:13
benou a écrit : |
quel est l'intérêt de spécifier l'encodage alors. Tu peux me donner un lien ou qqch qui explique ca stp?
Marsh Posté le 22-08-2003 à 10:42:07
DarkLord a écrit : |
chez moi ça, marche, je viens de faire la manip avec word comme éditeur utf-8
Marsh Posté le 22-08-2003 à 10:51:18
DarkLord a écrit : |
ben réfléchis plutot !
un fichier c'est un ensemble d'octets. les carctères normaux sont tous sauvegarder de la même façon. Par contre les carctères spéciaux peuvent avoir plusieurs codages binaires différents => un même codage binaire pourra avoir plsuieurs significations différente en fonction du charset dans lequel tu as choisit d'interpréter le fichir binaire.
Quand tu sauvegardes un fichier. Si celui-ci contient des car. spéciaux, le prog qui sauvegarde va les encoder dans un charset. Très souvent c'est le charset local => ISO-machin-1 en europe. Le problème c'est que dans un fichier texte, rien n'indique dans quel charset le fichier a été sauvegardé => un autre prog qui devra lire le fichier va le lire en fonction de son charset à lui. Si c'est le même tout se passe bien. Si c'est pas le même, on se retrouve avec des carré et des '?' à rire la rigo.
pour éviter ce problème des fichiers texte, en XML on indique l'encodage qui est utilisé => quand tu enregistres un fichier XML, tu utilises un certain charset et tu l'indique dans l'entête XML du fichier de façon à ce que les autres programmes qui le liront sauront quel charset utiliser pour le lire.
Bien sûr, si tu utilises un éditeur text pour lire ou écrire un fichier XML, rien ne t'assure que le charset que tu indiques dans l'entête XML soit le même que le charset utilisé par l'éditeur de texte pour lire/écrire le fichier. Par contre, les parsers et les éditeurs XML gèrent tous ce méchanisme (heureusement).
Vous remarquerez que l'entête d'un fichier XML ne contient pas de carctères spéciaux et c'est pour ca que les parsers peuvent commencer à lire le fichier sans connaître à l'avance le charset à utiliser. une fois qu'ils ont lu l'entête ils savent quel charset utiliser pour la lecture de la suite du document.
Donc dark, pour répondre à ta question : si ton doc XML ne lisait pas correctement sur un browser, c'est certainement parce que tu écrit charset="UTF-8" daans l'entête mais que tu as pas fait gaffe au charset utilisé pour sauvegarder ton document et qui était certainement l'ISO-machin-1 ...
capiché ?
edit : désolé pour les fautes, j'ai pas le courage de tout relire
Marsh Posté le 22-08-2003 à 10:52:05
non mais je nie pas ce que vous dites hein. Vu que j'étais un peu perdu sur le sujet, je ne reste pas sur mes positions. Maintenant je voudrais bien qu'on m'explique pq les accents ne sont pas correctement affichés en utf8, stou
Marsh Posté le 22-08-2003 à 10:52:30
DarkLord a écrit : non mais je nie pas ce que vous dites hein. Vu que j'étais un peu perdu sur le sujet, je ne reste pas sur mes positions. Maintenant je voudrais bien qu'on m'explique pq les accents ne sont pas correctement affichés en utf8, stou |
lis mon post
et là je les mérite mes points bourdail !!
Marsh Posté le 22-08-2003 à 10:53:43
ReplyMarsh Posté le 22-08-2003 à 10:53:49
benou a écrit :
|
Je vais tester tout ça, je te tiens au courant.
Thx!
Marsh Posté le 22-08-2003 à 10:54:03
benou a écrit : |
j'ai posté presque en meme temps que toi
Marsh Posté le 22-08-2003 à 10:54:36
Taz a écrit : aussure toi que ton source est en UTF-8 |
et je ne citerai pas benou
comme dit en suite, même éditer avec word ça marche
Marsh Posté le 22-08-2003 à 10:56:12
je fais le malin parce que maintenant j'ai compris, mais moi aussi j'en ai chié pour comprendre le truc quand j'y ait été confronté (saloperie de téléphones portables qui gèrent que l'UTF-8 !!! )
en fait c'est tout con, mais j'avais jamais capté que un bête fichier text pouvait poser autant de problème : c'est bizarre que ce cas là soit pas aborder durant les études d'infos...
Marsh Posté le 22-08-2003 à 11:00:28
l'utf-8, c'est bien. et puis c'est compatible ascii.
sans utf-8, imagine le bordel si tu veux diffusé un document, ne serait-ce qu'en Europe
Marsh Posté le 22-08-2003 à 11:09:30
Taz a écrit : l'utf-8, c'est bien. et puis c'est compatible ascii. |
c'est quoi cette remarque ???
en s'en fout de l'encodage. Le problème c'est qu'il y en a plusieurs ! si tout le monde se servait du même, quelqu'il soit, il y aurait aucun de problème !
Marsh Posté le 22-08-2003 à 11:10:57
En passant, j'ai les apostrophes en utf-8 qui deviennent des '?' en iso-8859-1, alors que c'est correctement converti vers du windows-1252. Quel est le problème ?
Marsh Posté le 22-08-2003 à 11:15:07
surement que le codage des apostrophe en utf-8 et en windows-1252 est le même
Marsh Posté le 22-08-2003 à 11:28:58
comme j'ai dit plus haut, l'utf-8 est compatible ascii, le reste n'est que pure coïncidence. les caractères utf-8 peuvent être multi-octets
Marsh Posté le 22-08-2003 à 11:48:14
Taz a écrit : comme j'ai dit plus haut, l'utf-8 est compatible ascii, le reste n'est que pure coïncidence. les caractères utf-8 peuvent être multi-octets |
et ???? tu réponds à qui là ?
Marsh Posté le 22-08-2003 à 12:07:51
Reply
Marsh Posté le 22-08-2003 à 08:57:09
Bonjour,
Mon problème concerne l'affichage des accents en iso ou utf8.
Je récupère le contenu d'une page html (page1) via un objet HttpURLConnection. Je copie ensuite ce contenu dans une nouvelle page html (page2). Il n'y a pas de problème d'affichage dans page2 lorsque page1 est de la forme :
En revanche, il y un problème d'accent lorsque page1 est de la forme :
Dans ce cas, page2 ne gère pas les accents (car la page est codée en utf8). Ce que je ne comprends pas, c'est que j'ai toujours ce problème d'accent lorsque je supprime les lignes qui indique que la page est codée en utf8 (appel à une regex pour la suppression de ces infos).
Quelqu'un peut-il m'expliquer pourquoi?
Comment faire pour que page2 affiche bien les accents? (en iso)
Si vous avez besoin de plus de précisions, n'hésitez pas à me les demander.
Merci.