<?php
$strings = array(
'ASCII' => 'ASCII',
'UTF-8' => "Tr\xc3\xb6t",
'Windows-1252 with ASCII' => "Tr\xf6t",
'Windows-1252 only' => "\xf6\xfd\x80",
'Windows-1252 only with an undefined character' => "\xf6\xfd\x81",
);
$detect = array('ASCII', 'Windows-1252', 'UTF-8');
foreach ($strings as $name => $string) {
$detected_loose = mb_detect_encoding($string, $detect, true);
$detected_strict = mb_detect_encoding($string, $detect, false);
if ($detected_loose === $detected_strict) {
if ($detected_loose === false) {
echo "'$name' could not be detected!\n";
} else {
echo "'$name' was detected as $detected_loose\n";
}
} else {
echo "'$name' was "
. ($detected_loose === false ? 'not detected' : "detected as $detected_loose")
. ' in loose mode, but '
. ($detected_strict === false ? 'not detected' : "detected as $detected_strict")
. " in strict mode\n";
}
}
preferences:
44.31 ms | 402 KiB | 5 Q