Re: probleme d'encodage de / PHP
claude C. a écrit :
Quelqu'un a t il une idée pour etre tranquille sans passe par
l'UTF-8 car ensuite j'ai des problemes avec PHP qui ne gère pas bien
l'UTF-8 ?
Vraiment ? Je n'utilise pas PHP mais un logiciel utilisé presque
uniquement pour le Web et qui ne gère pas UTF-8, cela parait difficile
à croire.
De fait, PHP ne gère pas UTF-8 d'une manière native.
Par contre, il dispose de différents moyens pour s'en sortir. Par
contre, à chaque étape, il faut savoir quel est l'encodage de la chaîne
de caractères.
On peut détecter si la chaîne est en UTF-8 via la méthode ci-dessous et
encoder en UTF-8 via utf8_encode si la chaîne ne l'est pas.
Jetez aussi un coup d'oeil à la liaison avec iconv.
http://fr.php.net/manual/fr/ref.iconv.php
public function isUTF8 ($chaine) {
// From http://w3.org/International/questions/qa-forms-utf-8.html
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $chaine);
}
Cordialement
J'ai finalement refait le test suivant:
Creation de la base en LATIN9
dans les script schema et data sql de la base j'ai SET
CLIENT_ENCODING='LATIN9'
Et avec psql -U user -d database -f script
schema d'abord, datas ensuite (j'ai scindé les deux).
Et bien là je n'ai eu aucun problémes. Donc j'avais un soucis avec
pgAdminIII à ce niveau là pour le latin9 car en effet pgAdminIII gere en
UTF-8
Maintenant il ne me reste plus qu'à faire le necessaire coté apache/php
pour voir si j ai toujrous le problem :)
merci
laurent
Home |
Main Index |
Thread Index