Я столкнулся с проблемой проверки кодов. Я знаю, что кодирование — это беспорядок, и его сложно проверить.
Я выбрал много вариантов и, в конце концов, попробовал preg_match.
Мне нужно определить, если какой-либо символ не является действительным ASCII или ISO 8859-1 (латинский в mysql).
Я закончил с этим:
return 0 === preg_match('/[^\x00-\x7F\xA2-\xFF]+/', $value);
Но не работает с этой таблицей:
¢£¤¥¦§¨©ª«¬-®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
Некоторые из этих символов не являются допустимыми латинскими, но они находятся в латинской кодировке. Как Э или А
Я думаю, это потому, что моя локаль или внутренняя функция encondigs установлена на UTF8.
Потому что это ʧ
оценивается как действительный латинский символ. Даже когда нет в кодировке http://es.wikipedia.org/wiki/ISO_8859-1
Любая помощь здесь высоко ценится.
НОТА:
Я также сделал много тестов с mb_detect_encoding, mb_check_encoding, mb_convert_encoding and iconv
но все они возвращают ʧ как действительный латинский символ.
Я немного потерян здесь.
Задача ещё не решена.
Других решений пока нет …