Немного предисловия.
Случаются такие ситуации, в которых при смене кодировки между windows-1251 и UTF-8 текст, написанный на кириллице, преобразуется примерно вот в такие каракули: "
Проверочный
".
Если Вы не сохранили резервную копию перед изменениями, последствия могут быть необратимы. Но не в нашем случае :) Немного поработав над этим вопросом, я составил вот такой массив:
array
(
'Р°'=>'а', 'Р±'=>'б',
'РІ'=>'в', 'Рі'=>'г',
'Рґ'=>'д', 'Рµ'=>'е',
'С‘'=>'ё', 'Р¶'=>'ж',
'Р·'=>'з', 'Рё'=>'и',
'Р№'=>'й', 'Рє'=>'к',
'Р»'=>'л', 'Рј'=>'м',
'РЅ'=>'н', 'Рѕ'=>'о',
'Рї'=>'п', 'СЂ'=>'р',
'СЃ'=>'с', 'С‚'=>'т',
'Сѓ'=>'у', 'С„'=>'ф',
'С…'=>'х', 'С†'=>'ц',
'С‡'=>'ч', 'С€'=>'ш',
'С‰'=>'щ', 'СЉ'=>'ъ',
'С‹'=>'ы', 'СЊ'=>'ь',
'СЌ'=>'э', 'СЋ'=>'ю',
'СЏ'=>'я', 'Рђ'=>'А',
'Р‘'=>'Б', 'Р’'=>'В',
'Р“'=>'Г', 'Р”'=>'Д',
'Р•'=>'Е', 'РЃ'=>'Ё',
'Р–'=>'Ж', 'Р—'=>'З',
'Р'=>'И', 'Р™'=>'Й',
'Рљ'=>'К', 'Р›'=>'Л',
'Рњ'=>'М', 'Рќ'=>'Н',
'Рћ'=>'О', 'Рџ'=>'П',
'Р '=>'Р', 'РЎ'=>'С',
'Рў'=>'Т', 'РЈ'=>'У',
'Р¤'=>'Ф', 'РҐ'=>'Х',
'Р¦'=>'Ц', 'Р§'=>'Ч',
'РЁ'=>'Ш', 'Р©'=>'Щ',
'РЄ'=>'Ъ', 'Р«'=>'Ы',
'Р¬'=>'Ь', 'Р'=>'Э',
'Р®'=>'Ю', 'РЇ'=>'Я',
);
Использование его Вам поможет восстановить текст, который был преобразован в каракули. Например, у нас есть такие каракули: "
Проверочный текст
".
Преобразуем их с помощью нашего скрипта:
<?php
$replace = array
(
'Р°'=>'а', 'Р±'=>'б',
'РІ'=>'в', 'Рі'=>'г',
'Рґ'=>'д', 'Рµ'=>'е',
'С‘'=>'ё', 'Р¶'=>'ж',
'Р·'=>'з', 'Рё'=>'и',
'Р№'=>'й', 'Рє'=>'к',
'Р»'=>'л', 'Рј'=>'м',
'РЅ'=>'н', 'Рѕ'=>'о',
'Рї'=>'п', 'СЂ'=>'р',
'СЃ'=>'с', 'С‚'=>'т',
'Сѓ'=>'у', 'С„'=>'ф',
'С…'=>'х', 'С†'=>'ц',
'С‡'=>'ч', 'С€'=>'ш',
'С‰'=>'щ', 'СЉ'=>'ъ',
'С‹'=>'ы', 'СЊ'=>'ь',
'СЌ'=>'э', 'СЋ'=>'ю',
'СЏ'=>'я', 'Рђ'=>'А',
'Р‘'=>'Б', 'Р’'=>'В',
'Р“'=>'Г', 'Р”'=>'Д',
'Р•'=>'Е', 'РЃ'=>'Ё',
'Р–'=>'Ж', 'Р—'=>'З',
'Р'=>'И', 'Р™'=>'Й',
'Рљ'=>'К', 'Р›'=>'Л',
'Рњ'=>'М', 'Рќ'=>'Н',
'Рћ'=>'О', 'Рџ'=>'П',
'Р '=>'Р', 'РЎ'=>'С',
'Рў'=>'Т', 'РЈ'=>'У',
'Р¤'=>'Ф', 'РҐ'=>'Х',
'Р¦'=>'Ц', 'Р§'=>'Ч',
'РЁ'=>'Ш', 'Р©'=>'Щ',
'РЄ'=>'Ъ', 'Р«'=>'Ы',
'Р¬'=>'Ь', 'Р'=>'Э',
'Р®'=>'Ю', 'РЇ'=>'Я',
);
# Строка с каракулями
$string = 'Проверочный текст';
# Преобразуем и выводим на экран полученный результат
echo strtr($string, $replace);
И получаем: "
Проверочный текст
". Важно: нужно сохранить файл, в котором этот скрипт в кодировке UTF-8 и всё сработает как надо.