caractères différents sous Firefox et IE

Le
Y a personne
Bonjour,

lors d'une requête Ajax le code suivant ne fonctionne pas avec IE mais
très bien avec Firefox comme toujours :


header("Content-type: text/html; charset=iso-8859-1");

$texte = "azerty € ™";

$texte = str_replace("€", "€", $texte);
$texte = str_replace("™", "™", $texte);

print $texte;


le code € et ™ deviennent des petits carrés

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ASM
Le #722080
Bonjour,

lors d'une requête Ajax le code suivant ne fonctionne pas avec IE mais
très bien avec Firefox... comme toujours :


header("Content-type: text/html; charset=iso-8859-1");

$texte = "azerty € ™";

$texte = str_replace("€", "€", $texte);
$texte = str_replace("™", "™", $texte);

print $texte;


le code € et ™ deviennent des petits carrés

merci


à mon idée et bien que je l'affectionne FF a tord
il n'y a pas de € dans l'iso-8859-1

à moins que tu n'aies d'autres lignes contradictoires.

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Olivier Miakinen
Le #722079
[ réponse en windows-1252, comme les deux articles précédents ]


header("Content-type: text/html; charset=iso-8859-1");
$texte = str_replace("€", "€", $texte);
$texte = str_replace("™", "™", $texte);


à mon idée et bien que je l'affectionne FF a [tort]
il n'y a pas de € dans l'iso-8859-1


Ni de ™. Je sais que Firefox accepte d'afficher ces caractères CP1252
quand on lui annonce de l'ISO-8859-1, mais je croyais justement que
c'était pour être bug-compatible avec Internet Explorer. On m'aurait menti ?

« Y a personne », tu peux te reporter à ma page récemment mise à jour,
ISO-8859-15, CP1252 et MacRoman, que le ™ est dans CP1252 et MacRoman,
mais qu'aucun des deux ne figure dans ISO-8859-1.


ASM
Le #722078
[ réponse en windows-1252, comme les deux articles précédents ]

[tort]



Nan j'ai pô écrit çà !

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Olivier Miakinen
Le #722077
Le 02/03/2007 01:38, ASM m'a répondu :

[tort]



Nan j'ai pô écrit çà !


Pardon, j'ai eu tort de le faire croire (mais je suis un peu tordu). ;-)



ASM
Le #722076
Le 02/03/2007 01:38, ASM m'a répondu :
[tort]
Nan j'ai pô écrit çà !




Pardon, j'ai eu tort de le faire croire (mais je suis un peu tordu). ;-)


En général, quand ça me démange vraiment trop, je le fais aussi.

Mais ... *discrétement* !

Les prochaines fois je t'envoie mes réponses, tu les corriges et me les
postes dans la foulée, j'espère que tu es dispo 24h/24 car je n'ai pas
d'horaires.

Ha oui ! le souriant : :-(
--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé




Olivier Miakinen
Le #722074

En général, quand ça me démange vraiment trop, je le fais aussi.
Mais ... *discrétement* !


Désolé, je croyais avoir été discret.

Les prochaines fois je t'envoie mes réponses, tu les corriges et me les
postes dans la foulée, j'espère que tu es dispo 24h/24 car je n'ai pas
d'horaires.


;-)

Ha oui ! le souriant : :-(


Oh ! Euh... bah « :-( » alors. Désolé.

Y a personne
Le #721767
[ réponse en windows-1252, comme les deux articles précédents ]

header("Content-type: text/html; charset=iso-8859-1");
$texte = str_replace("€", "€", $texte);
$texte = str_replace("™", "™", $texte);
à mon idée et bien que je l'affectionne FF a [tort]

il n'y a pas de € dans l'iso-8859-1


Ni de ™. Je sais que Firefox accepte d'afficher ces caractères CP1252
quand on lui annonce de l'ISO-8859-1, mais je croyais justement que
c'était pour être bug-compatible avec Internet Explorer. On m'aurait menti ?

« Y a personne », tu peux te reporter à ma page récemment mise à jour,
ISO-8859-15, CP1252 et MacRoman, que le ™ est dans CP1252 et MacRoman,
mais qu'aucun des deux ne figure dans ISO-8859-1.


Pourtant si j'écris simplement € dans un page avec
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

il s'affiche correctement dans tous les browsers....

????



Olivier Miakinen
Le #721765
[ Je reprends un jeu de caractères autorisé, à savoir ISO-8859-15 ]

Le 03/03/2007 19:23, Y a personne m'a répondu :
[ réponse en windows-1252, comme les deux articles précédents ]

il n'y a pas de ? dans l'iso-8859-1




[sic]


Ni de ?. [...]



[re-sic]


Pourtant si j'écris simplement ? dans un page avec


[re-re-sic]

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

il s'affiche correctement dans tous les browsers....


Il s'affiche «« correctement »» dans tous les navigateurs *que tu as
essayés*. J'ai mis de gros guillemets, car le code que tu envoies en
croyant que c'est un ¤ ISO-8859-1 est en réalité un code de commande
appelé « caractère de bourre » d'après la version française de la norme
Unicode :
Comme il n'existe aucun caractère affichable à cette position, un
certain nombre de navigateurs sous Windows croient bien faire en
affichant à la place le caractère qui est à la même position dans
windows-1252. Contrairement à ce que tu crois, ce n'est pas le cas de
*tous* les navigateurs.



Y a personne
Le #721762
[ réponse en windows-1252, comme les deux articles précédents ]

header("Content-type: text/html; charset=iso-8859-1");
$texte = str_replace("&euro;", "€", $texte);
$texte = str_replace("&trade;", "™", $texte);
à mon idée et bien que je l'affectionne FF a [tort]

il n'y a pas de € dans l'iso-8859-1


Ni de ™. Je sais que Firefox accepte d'afficher ces caractères CP1252
quand on lui annonce de l'ISO-8859-1, mais je croyais justement que
c'était pour être bug-compatible avec Internet Explorer. On m'aurait menti ?

« Y a personne », tu peux te reporter à ma page récemment mise à jour,
ISO-8859-15, CP1252 et MacRoman, que le ™ est dans CP1252 et MacRoman,
mais qu'aucun des deux ne figure dans ISO-8859-1.



pq alors ceci ne fonctionne toujours pas :

header("Content-type: text/html; charset=iso-8859-15");
$texte = str_replace("&euro;", "€", $texte);
$texte = str_replace("&trade;", "™", $texte);


Si je ne fais aucun remplacement, cela s'affiche correctement, mais le
problème est que je fais un htmlspecialchars() qui lui force l'affichage
des caractères avec &xxxx;

Quel est donc la solution ? utf-8 ?


merci



Pierre Goiffon
Le #721493
Y a personne wrote:
pq alors ceci ne fonctionne toujours pas :

header("Content-type: text/html; charset=iso-8859-15");
$texte = str_replace("&euro;", "€", $texte);
$texte = str_replace("&trade;", "™", $texte);

Si je ne fais aucun remplacement, cela s'affiche correctement, mais le
problème est que je fais un htmlspecialchars() qui lui force l'affichage
des caractères avec &xxxx;

Quel est donc la solution ? utf-8 ?


Non, la solution est de vous documenter et de bien faire les choses.
Si vous str_replace utilise le caractère de windows-1252 et que vous
indiquez ISO Latin-9 comme codage, évidemment, ça ne fonctionnera pas.
Il faut bien vérifier avec quel codage est enregistré votre script. Ou
alors utiliser des fonctions telles Chr() (sauf que je vois que dans PHP
cette fonction ne s'appuie que sur "ASCII" - je suppose donc us-ascii ?)

Publicité
Poster une réponse
Anonyme