Опять таки костыли костылями погоняются, при преобразование можно (нужно использовать) mb_list_encodings
mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());
Преобразование значение из бд:
mb_detect_encoding($value, mb_detect_order(), true) === 'UTF-8' ? $value ...