Как то после падения дамп базы MediaWiki был перенесен на другой сервер, однако, в базе получилась каша. Удалось нагуглить вот эту статью, где автор описал свою аналогичную проблему и способ решения. В общем то, базу удалось восстановить аналогичным образом. Однако, меня совсем не устроило, что в базу с кодировкой utf8 данные пишутся перебитыми в cp1251. Пришлось копнуть конфиг LocalSettings.php. Там мое внимание привлек такой параметр:
# Experimental charset support for MySQL 4.1/5.0. $wgDBmysql5 = false;
Покопавшись в описании конфига MediaWiki, сделал для себя открытие, что этот параметр устанавливает кодировку соединения с базой utf8. И действительно, после изменения значения в true в базу стал писаться нормальный текст. Ниче се, очень интуитивно понятное имя параметра и его описание ))) Ладно, оставим это на совести авторов... Так что, по хорошему, должно быть вот так:
# Experimental charset support for MySQL 4.1/5.0. $wgDBmysql5 = true;
Ежели utf8 записали в базу как cp1251 или latin1, получается нечитаемый текст примерно с таким соответствием символов:
cp1251 | latin1 | cp1251 | latin1 | |||
---|---|---|---|---|---|---|
Р° | а | а | Ð | А | ||
б | б | Б | Б | |||
РІ | в | в | Р’ | Ð’ | В | |
Рі | г | г | Г | Г | ||
Рґ | д | д | Д | Д | ||
Рµ | е | е | Е | Е | ||
Ñ‘ | ё | Ð | Ё | |||
ж | ж | Ж | Ж | |||
з | з | Р— | З | З | ||
Рё | и | и | И | И | ||
й | й | Й | Й | |||
к | к | Рљ | К | К | ||
Р» | л | л | Л | Л | ||
Рј | м | м | Ðœ | М | ||
РЅ | н | н | Ð | Н | ||
о | о | О | О | |||
п | п | П | П | |||
СЂ | Ñ€ | р | Ð | Р | ||
СЃ | Ñ | с | С | С | ||
С‚ | Ñ‚ | т | Т | Т | ||
у | у | У | У | |||
Ñ„ | ф | Ф | Ф | |||
Ñ… | х | Ð¥ | Х | |||
С† | ц | ц | Ц | Ц | ||
ч | ч | Ч | Ч | |||
С€ | ш | ш | Ш | Ш | ||
С‰ | щ | щ | Щ | Щ | ||
СЊ | ÑŒ | ь | Ь | Ь | ||
С‹ | Ñ‹ | ы | Ы | Ы | ||
РЄ | Ъ | Ъ | РЄ | Ъ | Ъ | |
СЌ | Ñ | э | Р | Ð | Э | |
СЋ | ÑŽ | ю | Р® | Ю | Ю | |
СЏ | Ñ | я | РЇ | Я | Я |