Я действительно нашел умный способ решить эту проблему, хотя я уже почти закончил список символов.Я опубликую его в контексте моего проекта, но его можно легко приспособить к другим ситуациям.
preg_replace_callback(
'#[^.]#u', function($matches) {
if ( null == (iconv("utf-8", "windows-1251//IGNORE", $matches[0])) ) {
return 'replace_pattern';
}
else return $matches[0];
},
$text
);
По сути, с помощью iconv
я проверяю, можно ли преобразовать символ юникода в windows-1251и если это возможно, то я возвращаю тот же символ, но если не могу (//IGNORE
возвращает null
в таких случаях), я возвращаю свой шаблон замены.Я почти уверен, что это пригодится тому, кто находится в подобной ситуации.