iconv UTF-8 / / IGNORE по-прежнему создает ошибку "незаконный символ"

$string = iconv("UTF-8", "UTF-8//IGNORE", $string);

Я думал, что этот код удалит недопустимые символы UTF-8, но он производит [E_NOTICE] "iconv(): Detected an illegal character in input string". Что мне не хватает, Как правильно очистить строку от незаконных символов?

2 ответов


выходной набор символов (Второй параметр) должен отличаться от входного набора символов (первый параметр). Если они одинаковы, то если в строке есть незаконные символы UTF-8,iconv отклонит их как незаконные в соответствии с набором входных символов.


чтобы просто игнорировать уведомление, Вы можете использовать"@":

$string = @iconv("UTF-8", "UTF-8//IGNORE", $string);