Browse Source

contourner le bug windows sur is_utf8 (et is_ascii, a priori, qui devrait avoir le même souci)

spip-1.9
Fil 17 years ago
parent
commit
74c7796396
  1. 10
      ecrire/inc_charsets.php

10
ecrire/inc_charsets.php

@ -508,7 +508,7 @@ function bom_utf8($texte) {
// http://w3.org/International/questions/qa-forms-utf-8.html
function is_utf8($string) {
return preg_match(',^(?:'
. '[\x09\x0A\x0D\x20-\x7E]' # ASCII
. '[\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
@ -516,10 +516,14 @@ function is_utf8($string) {
. '|\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
. ')*$,s', $string);
. ')*$,s',
strtr($string, "\t\r\n", " ") # contourner bug windows sur \r
);
}
function is_ascii($string) {
return preg_match(',^[\x09\x0A\x0D\x20-\x7E]*$,s', $string);
return preg_match(',^[\x20-\x7E]*$,s',
strtr($string, "\t\r\n", " ")
);
}
// Transcode une page (attrapee sur le web, ou un squelette) en essayant

Loading…
Cancel
Save