Знаю, тут много всего писалось. Если кто знает где решалась такая проблема - отошлите в ту тему. Спасибо
Даже не знаю точно как описать.
1. сравнение в БД - 1251
2. кодировка сайта и админки - утф-8
(Сайт не мой, мне сказали исправить)
В базе крокозяблики. На сайте тексты, добавленные недавно отображаются (при кодировке браузера утф-8). Старые тексты кракозяюлики и перекодировать никуда не получилось.
Сделал для анализа вот такой сниппет:
<?php
$i=0;
$query='SELECT * FROM `modx_site_content`';
$result=$modx->db->query($query);
while ($row=mysql_fetch_row($result)) {
foreach ($row as $value){
$text=iconv('UTF-8','WINDOWS-1251',$value);
echo '<hr><br>'.$i.': '.$text.' <hr>'.$value.'<br>';
$i++;
}
}
?>
Если в браузере стоит утф-8, то $value выводит нормально, а $text - кракозяблики.
Т.е., насколько я понимаю, текст храниться в базе символами 1251, но сам текст в утф-8.
Как из такого положения выйти? У меня все как-то запуталось. Если я достаю текст средствами php+mysql, то он у меня получается в кракозябликах, а не в какой-либо из этих двух кодировок?