Баг кодировки при вставке ссылки на форуме

rand

CooL-Lamer
Эксперт
Регистрация
24.05.2023
Сообщения
583
Реакции
1 157
Депозит
0.07 Ł и др.
Очень давно заметил раздражающий баг на форуме, некоторые ссылки генерируются с кракозябрами:
1725880613913.png

1725880739481.png


Вроде как рабочий фикс:
File location: src/XF/Http/Metadata.php:262 (XenForo 2.2.13)
PHP:
public function cleanMetadataString($string, $isUrl = false)
    {
        if (!$string)
        {
            return '';
        }
        // Added Code Start
        if(mb_check_encoding($string, 'UTF-8') === false){
            $string = mb_convert_encoding($string, 'UTF-8', 'ISO-8859-1');
        }else{
            $string = mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8');
        }
        // Added Code End
 
        $string = \XF::cleanString($string);
        $string = utf8_unhtml($string, true);
        $string = html_entity_decode($string, ENT_QUOTES | ENT_HTML5, 'UTF-8');
        $string = utf8_unhtml($string);
        $string = str_replace("\n", ' ', trim($string));
        $string = \XF::cleanString($string);
        if ($isUrl)
        {
            /** @var \XF\Validator\Url $validator */
            $validator = $this->app->validator('Url');
            $string = $validator->coerceValue($string);
            if (!$validator->isValid($string))
            {
                $string = '';
            }
        }
        return $string;
    }
Или:
1725885716275.png

1725885754644.png

Обсуждение проблемы:

Test:
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх