Код: Выделить всё
$string = "\x65\x92";
Я получаю следующие результаты:
Код: Выделить всё
mb_detect_encoding($string,"Windows-1252"); // false
mb_check_encoding($string,"Windows-1252"); // true
mb_detect_encoding($string,"ISO-8859-1"); // ISO-8859-1
mb_check_encoding($string,"ISO-8859-1"); // true
mb_detect_encoding($string,"UTF-8",true); // false
mb_detect_encoding($string,"UTF-8"); // UTF-8
mb_check_encoding($string,"UTF-8"); // false
< /li>
Во-вторых, я не понимаю, как mb_detect_encoding может возвращать false, а mb_check_encoding может возвращать true для той же строки и той же кодировки символов.
[*]Наконец, я не понимаю, почему строку можно обнаружить как UTF-8, строгий режим или нет. Байт x92 является байтом продолжения в UTF-8, но в этой строке он следует за допустимым символьным байтом, а не за ведущим байтом последовательности.
Подробнее здесь: https://stackoverflow.com/questions/399 ... g-function
Мобильная версия