Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Encodage UTF-8 (dans fichier .xul)

Envoyé par : Zéf

Date : 24/01/2006 17:57

Bonjour,

J'ai quelques problèmes avec l'encodage de mon fichier .XUL :

<?xml version="1.0" encoding="utf-8"?>

"&#233;" est bien reconnu comme un "é" alors que "&eacute;" me fait un joli bug au démarrage de FF.

Est-ce que le "&eacute;" est un symbole uniquement (X)HTML ? Il me semblait qu'il faisait partie intégrante de UTF-8 ... mais je peux me tromper.

Il se trouve que je remplis mon .XUL à partir d'une page XHTML codée avec des &eacute; &agrave; &ccedil; ... je tiens donc (si possible) à utiliser cette forme plutot que celle avec les codes hexa.

Merci par avance,

Zef

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : hhf

Date : 25/01/2006 02:36

je pense, (à essayer) que si tu mets l'espace de nom de html dans ta balise window, ca chargera la dtd de html et ca resoudra ton probleme

xmlns:html="http://www.w3.org/1999/xhtml"

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : Zéf

Date : 25/01/2006 09:55

bonjour,

J'ai testé ton idée hhf, mais mes "&eacute;" ne sont toujours pas acceptés.

Je suis tombé sur cette doc http://books.mozdev.org/chapters/ch11.ht(..) : "Using the NCR or CER value as well is also acceptable" (entités hexa ou abbrégées toutes deux acceptées)

J'ai donc fait des tests avec une chaine "abcd&eacute;" directement dans le .xul ou dans le fichier de ressource .dtd ... sans résultat pour l'instant.

Si vous avez d'autres propositions, je prends :)
merci hhf pour ton aide

Zef

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : Drazic

Date : 25/01/2006 11:31

Salut, j'ai plus ou moins le même problème que toi :

J'effectue une requête via xmlHttpRequest et je reçoit du XML (que j'ai généré avec du PHP).

Dans mon fichier PHP, je ne peux pas passer le caractère "é" (par exemple), le document XML me retourne une erreur ! Je le convertit donc en &eacute;. Mais le problème c'est que dans mon application, il s'écrit "&eacute" et pas "é" !

Je cherche aussi la solution...

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : laurentj

Date : 25/01/2006 14:15

Dans mon fichier PHP..

Tu as bien spécifier le charset avec la fonction header ?

Sinon, &eacute est une spécificité html, et non xml. Ou peut être que ton & s'est transformé en &amp; dans ton code php.

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : Zéf

Date : 25/01/2006 16:09

laurentj a écrit:

Sinon, &eacute est une spécificité html, et non xml

Je l'ai pourtant trouvé dans des documents sur UTF-8 sans rapport avec HTML ; de plus la doc online sur mozdev précise que NCR et CER sont acceptés ( cf http://books.mozdev.org/chapters/ch11.ht(..))

Enfin j'ai encore re-testé et les entités abrégées ne semblent pas être acceptées. C'est un peu embêtant, mais il va falloir convertir ...

Merci à tous pour votre aide
Zef

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : hhf

Date : 26/01/2006 02:45

moi, il me semble bien que si tu mets l'espace de nom de html, ca doit resoudre, le PB, je suis certain que je le fais, j'ai des url de RDF, qui sont en dure dans ma page xul, c'est urls sont du style :

datasources="www.monsite.com/controler?arg1=1&arg2=2&arg3=3"

si je mets ca, le parseur xml me met une belle erreur, car il ne trouve pas l'ENTITY &arg2.

pour resoudre le PB, je suis obligé de faire :

datasources="www.monsite.com/controler?arg1=1&amp;arg2=2&amp;arg3=3"

donc la definition des caracteres spéciaux est bien pris en compte.

Maintenant, si tu mets un "é" dans un file utf-8, il doit s'affiché sans probleme, alors pkoi passé par &eacute; ?

enregitre le bien aussi dans ce format : U8-DOS sous ultraedit

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : Zéf

Date : 27/01/2006 14:00

Bonjour,

D'abord, merci pour ta réponse. J'espère ne pas dire trop de bêtises :

  • les url dont tu parles sont dans un fichier RDF et non XUL :

J'utilise aussi un &amp; dans mon champ d'urlUpdate sans pb.

  • Ensuite, contrairement à ce que tu penses, "é" n'est pas un caractère valide UTF-8. Il doit être échappé en &#233; ou &eacute;. Ton "é" est valide dans le jeu de caractères ISO-8859-1 par exemple.
  • xmlns:html="http://www.w3.org/1999/xhtml" sert à définir un espace de noms pour les balises XML (sans cela tu ne peux utiliser de balise <window> par exemple) ; il ne modifie en rien le comportement vis-à-vis des caractères.

Enfin, comme je le disais je préfèrerais utiliser des &eacute; plutot que des &#233; car d'abord c'est plus lisible, ensuite je réutilise des pages XHTML qui utilisent cet échappement, et enfin j'aimerais comprendre pourquoi cela ne fonctionne pas.

Merci pour ton aide, de mon côté je continue à chercher
Zef

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : laurentj

Date : 27/01/2006 14:23

Ensuite, contrairement à ce que tu penses, "é" n'est pas un caractère valide UTF-8.

Bien sûr que si ! Il a juste un code différent que dans ISO-8859-1. On ne devrait pas avoir à le remplacer par un &...;

Il faut simplement faire attention que ton editeur enregistre et travail avec le charset que tu indique dans ton fichier xml/php.

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : Zéf

Date : 27/01/2006 17:30

Bonsoir,

Un code différent ??
Bien-entendu ... mais comment crois-tu que l'on écrive un caractère dont on a le code UTF-8 ?
&#nnn; avec nnn son code décimal
ou bien
&#xhhh; si hhh est son code hexa

Les formes &eacute; &agrave; sont des écritures "abbrégées" mais qui font tout autant partie de la norme UTF-8. Or ici l'usage des deux écritures n'est pas similaire ... c'est bien ça mon problème.

Je pense ne pas me tromper, mais c'est tout de même possible

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : laurentj

Date : 27/01/2006 18:37

mais comment crois-tu que l'on écrive un caractère dont on a le code UTF-8 ?

Je met mon éditeur en mode UTF-8, et je tape éèàç directement (et dans le texte final, j'ai bien éàçè et pas des &#... etc). Tu crois que tout le monde s'embête avec les &#...; ou &eacute; ? Les &eacute; &co ont été crée par le passé pour palier au fait que des charset universels comme UTF-8 était peu répandu et pas reconnu par les navigateurs (et ça remonte à loin), ou pour ceux qui utilisent un editeur de texte ne sachant pas éditer dans n'importe quel encodage. Si c'est ton cas, je te conseille fortement de changer d'editeur par un plus moderne ;-)

Les formes &eacute; &agrave; sont des écritures "abbrégées" mais qui font tout autant partie de la norme UTF-8.

Totalement faux. UTF-8 n'a strictement rien à voir avec les entités HTML et XML. C'est le navigateur qui remplace, lors de l'affichage, l'entité en ce qu'elle represente (ici des caractères mais ça peut être des chaînes entières, voir des morceaux entiers de XML/HTML), en utilisant l'encodage en cours.

c'est bien ça mon problème.

Non, je pense que ton problème est que tu n'utilise pas les bons outils, le bon éditeur de texte pour écrire tes programmes ou tes fichiers html/xml.

Si tu veux, mail moi ton fichier XUL/XHTML qui pose problème, et je te confirmerai mon diagnostic, ou te trouverais ce qui ne va pas si ce n'est pas ça ( laurent at xulfr.org )

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : hhf

Date : 27/01/2006 21:52

Entierement d'accord avec laurenj, ton probleme viens surement du fait que ton fichier n'est PAS en utf-8, malgrès le fait que tu mettes

<?xml version="1.0" encoding="utf-8"?>

pour ma part j'utilise ultraedit, du moins uestudio, pour le support CVS, et j'enregistre TOUS mes fichier en utf8, alors bien sur un 'é' en ISO-8859-1, ne se code pas de la même maniere en binaire que un 'é' en utf-8, mais pour toi c'est transparent...

Quand à mes exemple, non, ce n'est pas du RDF, c'est juste pour donner le lien d'un RDF.

Et, bien sur que l'espace de nom xml:html, n'a rien avoir avec les encodages des &amp; et autre, mais en lisant ton probleme, je me suis dit que ca valait le coup d'essayé de declaré l'espace de nom, pour du même coup declaré la DTD qui va avec, et qui definit les ENTITY comme &amp; &eacute;.

Voilou

Mais pour en revenir a ton probleme, je suis d'accord avec laurentj, ton PB, c'est ton editeur.

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : Zéf

Date : 28/01/2006 11:18

Bonjour,

Suite à vos messages, j'ai réalisé hier que &eacute; &agrave; s'obtenaient avec htmlentities (en php) ... et le nom ne faisait pas trop penser à de l'UTF-8 :D

Ensuite, j'ai repensé à ton truc du code de caractère sans utiliser les &... et j'avais complètement zappé que en faisant un dump sql en UTF-8 tous mes "é" sont remplacés par des Ã@ ce doit être l'écriture de "é" en UTF-8.

Je me suis finalement bien trompé ^^ comme quoi des fois on pense qu'on commence à connaître ... puis non.

Merci à tous pour votre précieuse aide,
Zéf

# Re: Encodage UTF-8 (dans fichier .xul)

Envoyé par : laurentj

Date : 28/01/2006 19:32

UTF-8 tous mes "é" sont remplacés par des Ã@ ce doit être l'écriture de "é" en UTF-8

Non, ils sont pas remplacé du tout. Ils s'affichent comme ça parce que l'outil (un éditeur de texte par ex) que tu utilises pour visualiser ce contenu croit que c'est de l'ISO-8859-1 par exemple. les codes des caractères n'étant pas les mêmes en UTF-8 et ISO-8859-1, l'affichage est donc différent.

Pour bien visualiser ce contenu, il suffit que tu indiques à ton outil que ce que ce contenu contient de l'UTF-8. Il interpretera donc les codes de caractères selon la grille UTF-8 et tout s'affichera correctement.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.