Regex для обнаружения неверной строки UTF-8

В PHP мы можем использоватьmb_check_encoding() чтобы определить, является ли строка допустимой UTF-8. Но это не переносимое решение, поскольку оно требует, чтобы расширение mbstring было скомпилировано и включено. Кроме того, он не скажет намwhich символ недействителен

Существует ли регулярное выражение (или другой 100% переносимый метод), которое может соответствовать недопустимым байтам UTF-8 в данной строке. Таким образом, эти байты можно заменить при необходимости (сохраняя двоичную информацию, например, при создании тестового выходного XML-файла, который включает двоичные данные). Поэтому преобразование символов в UTF-8 приведет к потере информации. Итак, мы можем захотеть преобразовать:

"foo" . chr(128) . chr(255)

В

"foo<128><255>"

Так что просто "обнаруживаю" что строка недостаточно хороша, мы должны быть в состоянии определить, какие символы являются недопустимыми.

Ответы на вопрос(3)

Ваш ответ на вопрос