|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Salut j'utilise tidy pour remettre en forme des pages HTML,
mon tableau de conf est celui-ci $tidy_config = array( 'char-encoding' => 'utf8', 'input-encoding' => 'utf8', 'output-encoding' => 'utf8', 'output-xhtml' => TRUE, 'ident' => true, 'wrap' => 0 ); la problème est que lorsque j'ai un caractère accentué (par exemple) tidy s'attend a le trouver en utf8 (ce qui est normal vu que ma page est en utf8) sauf que parfois le caractère accentue est escapé en HTML ´ par exemple et la rien ne va plus ! tidy n'arrive pas a remplacer ce caractère escapé par son equivalent UTF8 et me renvoit un fichier plus ou moins foireux qui au final ne passe pas dans un parser XML du php. Quelqu'un a une idée, sauf a coder moi meme la fonction qui decode les caractère escapé... pour info, je ne peux évidement pas utiliser la fonction html_entity_decode qui va aussi me decoder les caractère & !!! Etienne |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Le 04/09/2007 13:30, Etienne SOBOLE a écrit :
> > [le] problème est que lorsque j'ai un caractère accentué (par exemple) tidy > s'attend a le trouver en utf8 (ce qui est normal vu que ma page est en utf8) > sauf que parfois le caractère accentue est escapé en HTML ´ par > exemple et la rien ne va plus ! > [...] > > pour info, je ne peux évidement pas utiliser la fonction html_entity_decode > qui va aussi me decoder les caractère & !!! Sauf erreur, il te suffit d'appeler en séquence html_entity_decode et htmlspecialchars, dans un sens ou dans l'autre, pour décoder les caractères accentués mais pas les caractères spéciaux. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
> Sauf erreur, il te suffit d'appeler en séquence html_entity_decode et
> htmlspecialchars, dans un sens ou dans l'autre, pour décoder les > caractères accentués mais pas les caractères spéciaux. Hum ben non. si tu html_entity_decode tu vas transformer les $lt; en < et la c'est fouttu !!! nan ben en fait je codé la fonction a la main... ca marche pas trop mal. tidy c'est bien, mais c'est pas non plus parfait !!! j'ai trouvé un site ou le gars avait mis une balide <script> il ne l'as pas fermé et derriere il a mis une balide <meta> et ben les navigateurs vont ignorr la balise <script> alors que tidy va encoder byzarrement d'ailleurs tout ce qu'il y a derriere la balise <script> Bon voila. ca reste quand meme un oulit sympa ![]() a+ Etienne |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Le 05/09/2007 12:39, Etienne SOBOLE me répondait :
> > Hum ben non. > si tu html_entity_decode tu vas transformer les $lt; en < > et là c'est foutu !!! Les « < », je suppose. Mais tu as raison, ça ne marche pas. > nan ben en fait j'ai codé la fonction a la main... > ca marche pas trop mal. Ok. > tidy c'est bien, mais c'est pas non plus parfait !!! > j'ai trouvé un site où le gars avait mis une balise <script> > il ne l'as pas fermée et derrière il a mis une balise <meta> > > eh ben les navigateurs vont ignorer la balise <script> alors que tidy va > encoder bizarrement d'ailleurs tout ce qu'il y a derrière la balise <script> Comme on dit, « Garbage In, Garbage Out ». Je ne vois pas pourquoi tous les navigateurs réagiraient comme tu le dis à ce code incorrect. Certains pourraient parfaitement faire comme tidy, et interpréter bizarrement tout ce qui (selon eux) se trouve dans un élément script. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
> Comme on dit, « Garbage In, Garbage Out ». Je ne vois pas pourquoi
> tous les navigateurs réagiraient comme tu le dis à ce code incorrect. > Certains pourraient parfaitement faire comme tidy, et interpréter > bizarrement tout ce qui (selon eux) se trouve dans un élément script. Ah oui, il pourrait, mais ca semble pas être le cas. enfin bon pas tres grave. ca ne touche que tres peu de pages, qui passent donc a la trappe d'une remise en forme !!! Etienne |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Le 06/09/2007 12:33, Olivier Miakinen a écrit :
>> >> Hum ben non. >> si tu html_entity_decode tu vas transformer les $lt; en < >> et là c'est foutu !!! > > Les « < », je suppose. Mais tu as raison, ça ne marche pas. Finalement... en y re-re-re-réfléchissant... bien sûr, ça ne marche pas si tu commences par htmlspecialchars avant de faire html_entity_decode parce que < va devenir &lt; avant de redevenir <, mais qu'il en sera de même de é. Mais si tu fais l'inverse ? En principe tu devrais avoir : < ==> < ==> < é ==> é ==> é Je me trompe ? |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
> Mais si tu fais l'inverse ? En principe tu devrais avoir :
> < ==> < ==> < > é ==> é ==> é > > Je me trompe ? Oui tu te trompes. car <b>titre</b> va devenir <b>titre</b> et c'est pas trop le but ![]() Etienne |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Le 07/09/2007 09:51, Etienne SOBOLE a écrit :
>> >> Je me trompe ? > > Oui tu te trompes. > > car <b>titre</b> > va devenir <b>titre</b> > et c'est pas trop le but ![]() Ah, en effet. C'est sans espoir, donc, sauf à faire ce que tu as fait (une fonction codée à la main). Désolé. |
|
![]() |
| Outils de la discussion | |
|
|