Конвертируем смешанную кодировку текста из Windows-1251 в UTF-8
Пример как можно конвертировать текст в котором несколько смешанных кодировок.
function convertMixedEncodingToUtf8($mixedString) {
// Разделим строку по пробелам или другому разделителю
// Этот шаг может быть изменён в зависимости от формата исходной строки.
// В данном примере предполагается, что части закодированы раздельно.
$parts = preg_split('/ /m', $mixedString); // Разделяем по пробелам
$utf8String = [];
foreach ($parts as $part) {
// Проверяем кодировку строки
if (mb_detect_encoding($part, 'UTF-8', true) == false) {
// Конвертируем из Windows-1251 в UTF-8
$utf8String[] = iconv('Windows-1251//IGNORE', 'UTF-8//IGNORE', $part);
} else {
// Если уже в UTF-8, просто добавляем
$utf8String[] = $part;
}
}
return join(' ', $utf8String);
}