Vajra a écrit :
Salut,
Problème: un internaute français qui est en ... Asieou au Brésil, veut lire ces pages dans un cyber café de Macao ou de Rio de Janeiro...
.
Sachant que les cyber café de macao ou de Rio de Janeiro ont le même matériel informatique, dans laquelle de ces villes ces pages pourront être lue en moins de 5 secondes par l'internaute?
Peut-être en adaptant l'encodage du navigateur à celui de la page ?
boulaneige a écrit :
Peut-être en adaptant l'encodage du navigateur à celui de la page ?
C'est ce que font déjà tous les navigateurs, en se basant sur l'en-tête HTTP content-type... charset..., et à défaut, sur différentes pratiques Vaudou secrètes inavouables pour rectifier au mieux les erreurs ou l'absence d'information sur l'encodage.
Cela dit, pour Macao et Rio, tout dépend dans quel sens va le Nino à ce moment là. La température du Gulf Stream influe aussi. C'est très sensible aux variations atmosphériques, ces choses-là.
Laurent Denis a écrit :
C'est ce que font déjà tous les navigateurs, en se basant sur l'en-tête HTTP content-type... charset..., et à défaut, sur différentes pratiques Vaudou secrètes inavouables pour rectifier au mieux les erreurs ou l'absence d'information sur l'encodage.
J'ai beau aller sur un site avec charset=iso-8859-15, quand je regarde l'encodage de Firefox, il reste sur iso-8859-1.
Encore une subtilité qui m'échappe...
Vivement que je récupère mon ordi pour lancer une batterie de tests...
Laurent Denis a écrit :
<p>œuf...</p>
<edit>Oui, EricLB, tu as mis directement le caractère oe dans ton message, et il est passé... en rendant invalide cette page du forum, car dans ton message, il n'est pas encodé en ISO-8859-1, mais en Windows 1252, jeu de caractère incompatible avec Unicode, HTML, et qui te vaudra de produire des jolis carrés énigmatiques sur des navigateurs linux par exemple...
Hum hum...
Quitte à paraître candide, je ne vois pas vraiment la différence entre codifier le "oe" en œ et le é en é... ça voudrait dire que dans le 1° cas ce nest pas valide alors que dans le 2° oui ?

En fait j'avais codé mes "oe" en œ et non en œ...
boulaneige a écrit :
J'ai beau aller sur un site avec charset=iso-8859-15, quand je regarde l'encodage de Firefox, il reste sur iso-8859-1.
Si Firefox indique ISO-8859-1 comme encodage dans Outils>Informations sur la page, ou dans Affichage>Encodage des caractères, c'est qu'il s'agit d'une page mal servie: l'auteur a sans doute utilisé de l'ISO-8859-15 dans le fichier, mais n'a pas configuré son serveur pour qu'il indique ce jeu de caractères dans l'en-tête HTTP accompagnant le fichier.
(Rappel: ce n'est pas la <meta http-equiv...> qui sert au navigateur à déterminer l'encodage d'une page Web en ligne. A ce stade, elle est là pour faire joli.)
Ah d'accord...
Je viens de faire un phpinfo chez mon hébergeur, et j'ai trouvé ceci :
Cela veut-il dire qu'il ne faut pas que je travaille en iso-8859-15 ?
J'aurais jamais pensé que c'était si compliqué de choisir un charset !
Encore merci pour ces précisions, et ta patience
Je viens de faire un phpinfo chez mon hébergeur, et j'ai trouvé ceci :
HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7
Cela veut-il dire qu'il ne faut pas que je travaille en iso-8859-15 ?
J'aurais jamais pensé que c'était si compliqué de choisir un charset !
Encore merci pour ces précisions, et ta patience

EricLB a écrit :
Hum hum...
Quitte à paraître candide, je ne vois pas vraiment la différence entre codifier le "oe" en œ et le é en é... ça voudrait dire que dans le 1° cas ce nest pas valide alors que dans le 2° oui ?![]()
Non, ça n'est pas du tout ça.
Quand on dit qu'ISO-8859-1 permet d'écrire un caractère é mais pas un caractères oe, cela veut dire :
- que tu n'as pas besoin d'écrire é . Tu peux saisir directement le caractère é. Le é est tout à fait valide, mais totalement inutile en ISO-8859-1.
- que tu ne peux pas saisir directement le caractère oe. Dans son cas, au contraire, tu dois passer par œ
Voir les abondantes explications données dans ce sujet

boulaneige a écrit :
Ah d'accord...
Je viens de faire un phpinfo chez mon hébergeur, et j'ai trouvé ceci :
HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7
Cela veut-il dire qu'il ne faut pas que je travaille en iso-8859-15 ?
Non, perdu.... désolé

ça, c'est l'en-tête envoyé par ton navigateur au serveur quand il demande la page Web pour indiquer quels encodages il aime bien recevoir par défaut, et dans quel ordre de préférence. Mais ce n'est pas d'une importance capitale, en fait : les navigateurs ne déclarent pas le 10e de ce qu'ils peuvent interpréter.
Ce que tu cherches, c'est l'en-tête envoyé par le serveur à ton navigateur quand il envoit la page Web, pour indiquer l'encodage de la page.
Pour ne pas désespérer...

- HTTP Request Header : c'est ton navigateur qui parle.
- HTTP Response Header : le serveur parle, c'est là qu'est l'info sur le jeu de caractère, dans la ligne Content-Type. Il se peut qu'elle manque : tu es tombé sur un serveur qui ne fait pas son boulot et qui n'envoie pas cette info essentielle.
Modifié par Laurent Denis (18 Dec 2005 - 20:29)
Alors, j'ai absolument rien compris au formulaire, j'ai donc tout laissé par défaut.
Si je mets l'adresse d'une page en iso-8859-1 et sans doctype (oui je sais, je suis justement en train de refaire ce site), il indique dans HTTP Response Header :
Avec une page en iso-8859-15 et le doctype X-HTML 1.0 strict :
Et je ne désespère pas, j'ai juste un peu honte d'étaler au grand jour une de mes nombreuses lacunes
Si je mets l'adresse d'une page en iso-8859-1 et sans doctype (oui je sais, je suis justement en train de refaire ce site), il indique dans HTTP Response Header :
Content-Type: text/html
Avec une page en iso-8859-15 et le doctype X-HTML 1.0 strict :
Content-Type: text/html; charset=iso-8859-1
Et je ne désespère pas, j'ai juste un peu honte d'étaler au grand jour une de mes nombreuses lacunes

En fait, dans tout ça, il y a un truc que je ne comprends pas tout à fait encore...
Je suis sous Konqueror (Linux donc...)
Tapons directement le caractère oe : ici ->œ<- (N.B. Chez moi, dans l'éditeur de message, il apparaît correctement, mais il se transforme en &#339; [ce qu'on trouve dans la source de la page...]). En fait, ce n'est pas vraiment un problème d'encodage, mais plutôt un bug du forum... Puisqu'il devrait transformer mon caractère en œ (ou en œ), pas en &#339;, non ?
Ou alors je ne comprends plus rien là...
Finalement, l'encodage du forum importe peu, du moment qu'on peut remplacer tout caractère manquant par son "entité". Le problème est que, dans mon cas, ça foire... Bug du forum ou bug de Konqueror ?
@+, HoPHP
Je suis sous Konqueror (Linux donc...)
Tapons directement le caractère oe : ici ->œ<- (N.B. Chez moi, dans l'éditeur de message, il apparaît correctement, mais il se transforme en &#339; [ce qu'on trouve dans la source de la page...]). En fait, ce n'est pas vraiment un problème d'encodage, mais plutôt un bug du forum... Puisqu'il devrait transformer mon caractère en œ (ou en œ), pas en &#339;, non ?
Ou alors je ne comprends plus rien là...
Finalement, l'encodage du forum importe peu, du moment qu'on peut remplacer tout caractère manquant par son "entité". Le problème est que, dans mon cas, ça foire... Bug du forum ou bug de Konqueror ?
@+, HoPHP
Bonjour,
Hophp : it's not a bug, it's a feature
Dew nous le confirmera, mais ce remplacement par &#339; est très probablement voulu, pour faciliter les discussions à propos d'entités, où l'on a besoin de les inclure dans les messages sans qu'elles soient interprétées.
(Si ma mémoire est bonne, au départ, le forum laissait passer les entités sans les échapper, ce qui avait suscité quelques râleries
)
boulaneige : ton serveur semble curieusement configuré. S'il s'agit de http://www.boulaneige.com :
- il n'envoie aucune information d'encodage pour les pages .php, ni pour les pages .htm (accueil)
- je suppose qu'il envoie un charset iso-8859-1 pour les pages html (ton test en iso-88589-15 ?)
Tu peux modifier cette configuration de plusieurs manières. Par exemple :
Pour que tous les fichiers .php du serveur soient servis avec le charset iso-8859-15, ajouter au .htaccess :
(et ainsi de suite pour les différentes extensions de fichier)
Pour qu'un seul fichier php précis soit servi avec ce charset, ajouter directement au début du fichier lui-même :
A propos de ces questions d'encodage : il y a une excellente série de slides sur le site de la section i18n du W3C, malheureusement uniquement en anglais : http://www.w3.org/International/tutorials/tutorial-char-enc/en/slides/Slide0240.html
Modifié par Laurent Denis (19 Dec 2005 - 05:37)
Hophp : it's not a bug, it's a feature

Dew nous le confirmera, mais ce remplacement par &#339; est très probablement voulu, pour faciliter les discussions à propos d'entités, où l'on a besoin de les inclure dans les messages sans qu'elles soient interprétées.
(Si ma mémoire est bonne, au départ, le forum laissait passer les entités sans les échapper, ce qui avait suscité quelques râleries

boulaneige : ton serveur semble curieusement configuré. S'il s'agit de http://www.boulaneige.com :
- il n'envoie aucune information d'encodage pour les pages .php, ni pour les pages .htm (accueil)
- je suppose qu'il envoie un charset iso-8859-1 pour les pages html (ton test en iso-88589-15 ?)
Tu peux modifier cette configuration de plusieurs manières. Par exemple :
Pour que tous les fichiers .php du serveur soient servis avec le charset iso-8859-15, ajouter au .htaccess :
AddCharset iso-8859-15 .php
(et ainsi de suite pour les différentes extensions de fichier)
Pour qu'un seul fichier php précis soit servi avec ce charset, ajouter directement au début du fichier lui-même :
<?php
header('Content-Type: text/html; charset=iso-8859-15');
?>
A propos de ces questions d'encodage : il y a une excellente série de slides sur le site de la section i18n du W3C, malheureusement uniquement en anglais : http://www.w3.org/International/tutorials/tutorial-char-enc/en/slides/Slide0240.html
Modifié par Laurent Denis (19 Dec 2005 - 05:37)
Pour le serveur, je suis en mutualisé chez phpnet.org. Je pense que l'admin pourrait être sensible au problème s'il est bien exposé, chose dont je suis bien incapable.
Le premier test a effectivement était fait sur mon splash, le second sur la nouvelle future version (SPIP) (c'est loin d'être fini : on rigole mais on ne se moque pas !).
Je pense que je vais revenir en iso-8859-1, c'est le charset utilisé dans les squelettes fournis par défaut dans SPIP. Et comme tu sais surement, dans la console d'administration, il y a des raccourcis pour faire notamment le oe, euro, é majuscules. Bref, ils ont tout prévu
Désolée pour ton lien, mais l'anglais et moi, ça fait un nombre certain
Modifié par boulaneige (19 Dec 2005 - 11:37)
Le premier test a effectivement était fait sur mon splash, le second sur la nouvelle future version (SPIP) (c'est loin d'être fini : on rigole mais on ne se moque pas !).
Je pense que je vais revenir en iso-8859-1, c'est le charset utilisé dans les squelettes fournis par défaut dans SPIP. Et comme tu sais surement, dans la console d'administration, il y a des raccourcis pour faire notamment le oe, euro, é majuscules. Bref, ils ont tout prévu

Désolée pour ton lien, mais l'anglais et moi, ça fait un nombre certain

Modifié par boulaneige (19 Dec 2005 - 11:37)
HoPHP a écrit :
Laurent Denis> Désolé. Pour moi, ça, c'est un bug ! Ou alors il faut qu'on m'explique en quoi ça gêne!
Parce qu'en l'absence de caractère d'échappement, toute entité sera reproduite en tant que caractère et non à l"identique, ce qui est gênant quant tu ne veux pas obtenir le caractère résultant, mais l'entité dans ton message.
Exemple : si on me demande comment obtenir le signe é en us-ascii, je pourrais toujours écrire é dans mon message, ça donnera un é. Mon interlocuteur sera bien avancé

Ou alors, il faudra que j'écrive des choses du genre : un & eacute; sans l'espace entre le & et le eacute... bof.
La solution qui mettra tout le monde d'accord: réplication des entités à l'identique sans encodage du & et possibilité d'utiliser un caractère d'échappement du & quand on veut obtenir l'entité et non le caractère. Restera aux modos à expliquer comment ça marche aux utilisateurs

HoPHP a écrit :
Dew ?
Oui, on va tous se prendre une grande claque, là, parce qu'on a tout faux

<edit>Non, mais. Ce gars se les casse à vous produire une solution de forum très promettrice. Et vous râlez parce qu'il ne fait pas les o dans l'e ? Bandes de maniaques obsessionnels !

</>
Modifié par Laurent Denis (19 Dec 2005 - 14:49)
En fait, je crois que la solution dans ce cas devrait s'énoncer comme suit:
Donc la seule chose à transformer, c'est le & en & et les caractères "hors charset" en entités, rien d'autre, afin d'avoir l'affichage correct. Là où je ne comprends pas, c'est la double transformation. Il prend mon caractère oe et il le transforme en œ puis en &#339; ce qu'il ne devrait pas faire. C'est donc un bug, non?
DEW, DEW, DEW, DEW !
@+, HoPHP
P.S. Dew> En fait, une réponse "oui, ajouté à la To-dew" ou "non, jamais" me suffirait !
a écrit :
À part les codes Wiki, tout caractère devrait s'afficher comme dans la fenêtre d'écriture.
Donc la seule chose à transformer, c'est le & en & et les caractères "hors charset" en entités, rien d'autre, afin d'avoir l'affichage correct. Là où je ne comprends pas, c'est la double transformation. Il prend mon caractère oe et il le transforme en œ puis en &#339; ce qu'il ne devrait pas faire. C'est donc un bug, non?
DEW, DEW, DEW, DEW !
@+, HoPHP
P.S. Dew> En fait, une réponse "oui, ajouté à la To-dew" ou "non, jamais" me suffirait !