From: | "claude C(dot)" <claude(dot)di(dot)pg(at)free(dot)fr> |
---|---|
To: | |
Cc: | pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: probleme d'encodage de / PHP |
Date: | 2006-05-30 13:36:17 |
Message-ID: | 447C4A51.2050609@free.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
>
>
>> 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
Claude C.
From | Date | Subject | |
---|---|---|---|
Next Message | Laurent Mesuré | 2006-05-30 19:23:45 | Re: probleme d'encodage de caractères |
Previous Message | Stephane Bortzmeyer | 2006-05-30 13:33:40 | Re: probleme d'encodage de |