Есть таблица DEFAULT CHARSET=utf8 (кодировка страниц тоже utf-8). В ней хранятся данные одного из TV параметра в таком виде:
INSERT INTO `dora_site_tmplvars` VALUES (’1’,’checkbox’,’genre’,’Жанр’,’Жанры фильма’,’0’,’8’,’0’,’<em>комедия</em> - бла-бла||<em>романтика</em> - бла-бла||<em>боевик</em> - бла-бла’,’0’,’’,’’,’’);
есть сниппет, с помоью которого все это дело распарсиваем:
$output = "";
$result = $modx->db->query( 'SELECT elements FROM dora_site_tmplvars WHERE name="'genre'"');
while( $row = $modx->db->getRow( $result ) ) { $items=explode ("||",trim($row["elements"])); }
asort($items);
foreach ($items as $value) {
preg_match('|<em>(.*?)</em>(.*)|',$value,$matches);
$output .="<p><a href='index.php?id=18&".$param."=".$matches[1]."'>".$matches[1]."</a> ".$matches[2]."</p>";
}
return $output;
?>
формирую строки типа: <a href=’index.php?id=18&genre=боевик>боевик</a> - бла-бла
но, когда я кликаю на эту ссылку и перехожку на страницу, где с помощью $_GET[’genre’] вывожу этот жанр на страницу (она в utf8) я вижу на экране бред:
аБаОаЕаВаИаК вместо боевик
аМб�Зб�КаАаЛб�Нб�Й вместо музыкальный
аМаЕаЛаОаДб�АаМаА - вместо мелодрама
пробовал так:
$output .="<p><a href='index.php?id=18&".$param."=".rawurlencode($matches[1])."'>".$matches[1]."</a> ".$matches[2]."</p>";
Один фиг
Почему так происходит?