Post by Etienne[citation intégrale]
Je ne sais pas si tu le sais, mais les règles de citation en vigueur sur
toute la hiérarchie le sont d'autant plus dans le forums modérés.
Quelques lignes de plus, et ton article était refusé pour citation
excessive.
Voir <http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html>, en
particulier les paragraphes 3a et 3b.
Post by EtienneMerci.
je vais essayer...
j'espère que cela va solutionner mon problème...
ca serait top :)
J'ai trouvé encore mieux :
<cit. http://www.w3.org/International/questions/qa-forms-utf-8>
$field =~
m/\A(
[\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
)*\z/x;
</cit.>
J'ai vérifié, cela correspond aux seuls encodages UTF-8 permis des
caractères 09 (tabulation), 0A (saut de ligne), 0D (retour chariot),
20 à 7E (ASCII imprimable), 80 à D7FF et E000 à 10FFFF (c'est-à-dire
tout le reste sauf les surrogates D800 à DFFF). Il me semble qu'ils
auraient pu exclure aussi les commandes C1, soit 80 à 9F, mais bon,
ce n'est pas très gênant. Idem pour les non-caractères du style FFFE
et FFFF.
En PHP cela donne :
=================================================================
$re = "/\\A(
[\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
)*\\z/x";
if (preg_match($re, $chaine)) {
// Syntaxe UTF-8 validée, sans encodage
// « overlong » ni « surrogates » :
// U+0009, U+000A, U+000D, U+0020 .. U+007E,
// U+0080 .. U+D7FF, U+E000 .. U+10FFFF.
} else {
// Cette chaîne n'est pas en UTF-8.
}
=================================================================
Cordialement,
--
Olivier Miakinen