Andryushkin.ru
Блог им. alex-borisi (Александра Андрюшкина)

Конвертируем смешанную кодировку текста из 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);
}

Просмотров: 968