We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 11255
    • 193 Posts
    Знаю, тут много всего писалось. Если кто знает где решалась такая проблема - отошлите в ту тему. Спасибо
    Даже не знаю точно как описать.

    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, то он у меня получается в кракозябликах, а не в какой-либо из этих двух кодировок?
    


      • 32725
      • 107 Posts
      Простой способ исправления (сам им часто пользуюсь, так как лень делать по-нормальному smiley)

      Заходим в phpMyAdmin
      Экспортируем базу в файл
      Удаляем все таблицы к чертям
      Открываем файл текстовым редактором и делаем find/replace cp1251 utf8 (или как там оно пишется)
      Сохраняем файл
      Импортируем его в нашу пустую базу

      З.Ы. Перед тем как это делать, проверьте, что экспорт импорт нормально работает. мало ли )

        My portfolio
        Самурай без меча подобен самураю с мечом, только без меча.
        • 11255
        • 193 Posts
        2Wuron, спасибо. Как-то попробую. Думаю не последний раз сталкиваюсь.

        А в итоге я поставил уже ево 1.0.2 и просто попереносил тексты, шаблоны. короче именно данные. А потом немного пришлось поправить все. Так что проблему не решил, но она просто отпала.