Переход на другую кодировку

rockboy2012

Новичок
Здравствуйте.
Был сайт в кодировке win-1251, перешли на кодировку utf-8
Исходный запрос для сайта: Три тополя
в вин кодировке он %D2%F0%E8+%D2%EE%EF%EE%EB%FF
в ютф кодировке он %D0%A2%D1%80%D0%B8+%D0%A2%D0%BE%D0%BF%D0%BE%D0%BB%D1%8F
В ПС храняться ссылки на наш сайт вида site.ru/?m=%D2%F0%E8+%D2%EE%EF%EE%EB%FF (т.е. еще на вин кодировку)

Если пользователь по ним переходит, то то видит ��� ������

Вопрос: как лучше решить эту проблему? т.е. нужно узнать, исходный запрос в win-1251 кодировке или нет. если да - преобразовать к виду utf-8
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Зачем писать url-кодированные данные в ПС? И что есть ПС?

echo mb_detect_encoding(urldecode(' %D2%F0%E8+%D2%EE%EF%EE%EB%FF ')); все равно покажет UTF-8
 

rockboy2012

Новичок
в яндексе, гугле и прочих сайтах, ссылающихся на наш, все ссылки в таком виде: site.ru/url-кодированные в вин
при переходе по ним человек видит чтото типа ��� ������
 

antson

Новичок
Партнер клуба
попробывать найти результаты для строки как utf, если нет, то как для строки перекодированной из 1251, результаты есть.
вернуть 302 код на правильный локейшен.
После переиндексации сайта поисковиками убрать костыль

Или еще проще.
Сменить переменную на ?mu=Текст в utf=8
А по вызову ?m=текст в 1251 сделать переадресацую на mu=
 

Gremboloid

инженера Гр...
в одном проекте использовал след. костыль:
PHP:
if (!mb_check_encoding($param, 'UTF-8')) {
    $param= mb_convert_encoding($param, 'UTF-8', 'Windows-1251');
}
 
Сверху