Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

caractères différents sous Firefox et IE

24 réponses
Avatar
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

10 réponses

1 2 3
Avatar
ASM
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é

Avatar
Olivier Miakinen
[ 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,
<http://www.miakinen.net/vrac/charsets/>, pour vérifier que l'€ est dans
ISO-8859-15, CP1252 et MacRoman, que le ™ est dans CP1252 et MacRoman,
mais qu'aucun des deux ne figure dans ISO-8859-1.


Avatar
ASM
[ 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é


Avatar
Olivier Miakinen
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). ;-)



Avatar
ASM
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é




Avatar
Olivier Miakinen

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é.

Avatar
Y a personne
[ 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,
<http://www.miakinen.net/vrac/charsets/>, pour vérifier que l'€ est dans
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....

????



Avatar
Olivier Miakinen
[ 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 : <http://www.unicode.org/fr/charts/PDF/U0080.pdf>.

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.



Avatar
Y a personne
[ 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,
<http://www.miakinen.net/vrac/charsets/>, pour vérifier que l'€ est dans
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



Avatar
Pierre Goiffon
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 ?)

1 2 3