ICONV => qu'elle magie!

Bonjours,

J’ai testé cela comme script pour une conversion de caractere avec la fonction iconv:

<html><head>
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<?
$nom="?erný";   // (DE SUITE MAL AFFICHER PAR CLUBIC DAILLEUR...) :)
print (iconv("utf8","ASCII//TRANSLIT",$nom));

?>
</body>
</html>

Et lorsque je vais sur cette page en http, j’ai le mot “?ern?” qui s’ecrit (mauvais donc…)

alors que si j’execute la page via un shell (je suis sour linux)

root@serveur# php5 /var/www/mapage.php

ca me donne le mot (juste!) : Cerny

Une explication ? Je galaire depuis des heures la dessus !

MERCI !
Edité le 01/07/2008 à 11:59

dans la suite du binz…

j’ai encodé la chaine en base 64 :

print (base64_encode(iconv("utf-8","ASCII//TRANSLIT",$nom)));

ca me donne : $nom en base 64 => P2Vyb8=

et j’ai decodé :

print (base64_decode("P2Vyb8="));

ca me donne :

?ern?

ILLOGIQUE… :s je retombe pas sur mes pieds !
Edité le 01/07/2008 à 14:13

logique.

Ton navigateur va lire du us ascii, ta console de l’utf-8

Essaye iso-8859-1 déjà, et utf-8 ensuite. voire utf-16 and co.

Grand merci de t’etre donné la peine de me répondre :slight_smile:

J’ai testé avec les 3 types que tu viens de me donné [pour commencer] => sans succes
EDIT : j ai essayé avec les autres type : que niet :S

par contre je vois pas pourquoi il attendrait autre chose que tu u-ascii … vu que la chaine que j’ai converti c’etait EN us-ascii ^^

Tu vois ?
Edité le 01/07/2008 à 14:39

Hum. Tu pars de l’ascii vers l’utf-8 ? ou l’inverse?

Dans un cas ok (ascii -> utf-8 = inutile, utf-8 contient ascii)
Dans l’autre cas je vois mal comment ça peut marcher pour tous les cas?

Je part de l’utf-8 vers l’ascii et la fonction ICONV prétend savoir le fair!

Et en effet ca marchje comme dit,…mais que si j’execute ma page en shell linux! truc de fou!