Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/05/2008, 13h06   #1
Membre Expert
 
Avatar de nicorama
 
Inscription : juillet 2006
Messages : 759
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 759
Points : 1 158
Points : 1 158
Par défaut [Prototype] [XML]Caractères spéciaux encodés en \303\xyz ou \317\xyz

Je fait une requête toute bête à mon serveur, et mon sniffeur me dit qu'entre mon browser et le serveur, mes accents ou caractères spéciaux sont transformés en \303\251 pour é, ou \317\206 pour le caractère html phi.

Pourtant ma requête a une content-Type txt/xml; charset=UTF-8 des plus classiques.

Dans mon serveur Java, ça se transforme ensuite en é

Vous savez comment des caractères unicodes normaux ?
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT.
API Simple et Productive. Avec style.
nicorama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 15h38   #2
En attente de confirmation mail
 
Inscription : octobre 2003
Messages : 1 249
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 1 249
Points : 261
Points : 261
Citation:
Pourtant ma requête a une content-Type txt/xml; charset=UTF-8 des plus classiques.
et bien la, il y a déja un problème : UTF-8, c'est l'encodage ricain donc pas d'accents => il faudrait que tes fichiers soient plutôt codés en iso-8859-1

Ta page est écrite en français ou en anglais ?

Tu as essayé de passer ta page au validateur W3C ?
Emcy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 08h05   #3
Membre Expert
 
Avatar de nicorama
 
Inscription : juillet 2006
Messages : 759
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 759
Points : 1 158
Points : 1 158
J'ai fait une fonction Javascripts qui transforme les caractères particuliers en &#xxx avant de passer dans la requête, et ca se passe pas si mal.

Si ce n'est qu'un moment mon '&' de &#xxx se transformait en & . Pour l'instant je n'ai pas de mauvaises surprises sur mes deux PC, sous FF et IE.

Mais ces histoires d'encodages sont bien complexes !!!!
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT.
API Simple et Productive. Avec style.
nicorama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 08h55   #4
En attente de confirmation mail
 
Inscription : octobre 2003
Messages : 1 249
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 1 249
Points : 261
Points : 261
normalement, si tu sélectionnes le bon charset (iso-8859-1), que tu enregistres ton fichier au bon format (AINSI) et si ton serveur gère correctement le format (qu'il ne transforme pas des caractère AINSI en UTF-8 et qu'il ne change pas le charset dans l'entête HTTP), tu ne devrais pas avoir besoin d'encoder tes caractères

par exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
	<head>
		<title>TEST</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	</head>
 
	<body>
		<p>marché</p>
	</body>
</html>
=> affiche "march?"

alors que
Code :
1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
	<head>
		<title>TEST</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	</head>
 
	<body>
		<p>marché</p>
	</body>
</html>
=> affiche "marché"
Emcy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 07h50   #5
Membre Expert
 
Avatar de nicorama
 
Inscription : juillet 2006
Messages : 759
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 759
Points : 1 158
Points : 1 158
iso-8859-1 ne me convient pas car je veux quelque chose d'international comprenant l'arabe, le chinois, le coréen, etc.

Je me suis aperçu aussi que je méttais UTF-8 hans le header, mais que je me passais de <?xml version="1.0" encoding="utf-8" ?>
Chose rectifiée.
Thanx pour tes reply.
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT.
API Simple et Productive. Avec style.
nicorama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 16h27   #6
Membre Expert
 
Avatar de nicorama
 
Inscription : juillet 2006
Messages : 759
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 759
Points : 1 158
Points : 1 158
Le XML accepte très bien tout symbole comme & #254; mais pas les HTMLEntities.

Je règle le problème avec ce genre de fonctions (necessite Prototype)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 convertHTMLEntitiesToXML : function (text){
 
        var i;
        var xml = new Array('"','&','&','<','>',' ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','*','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ', '&#x20AC;');
        var html = new Array('"','&amp;','&amp;','&lt;','&gt;','&nbsp;','&iexcl;','&cent;','&pound;','&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&ordf;','&laquo;','&not;','*','&reg;','&macr;','&deg;','&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&ordm;','&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Auml;','&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Euml;','&Igrave;','&Iacute;','&Icirc;','&Iuml;','&ETH;','&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Ouml;','&times;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;','&Yacute;','&THORN;','&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&divide;','&oslash;','&ugrave;','&uacute;','&ucirc;','&uuml;','&yacute;','&thorn;','&yuml;', '&euro;');
 
    for (i=0;i<xml.length;i++){
            text=text.gsub(html[i], xml[i]);
    }
 
        return text; 
 
 
    }
Le gag étant bien sûr que l'éditeur de Developpez.com transforme mes & #34; en "
Si vous voulez des fonctions javascript pour convertir les HTMLEntities en Numeric Entities, envoyez-moi un message personnel.

J'avais peur que cela prenne un temps machine conséquent, mais c'est finalement très négligeable.
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT.
API Simple et Productive. Avec style.
nicorama est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h39.


 
 
 
 
Partenaires

Hébergement Web