Есть сайт, форум и самописный элемент. Сайт и форум win1251 (dle 9.2 AND vbulletin) Самописный на utf8 Мне нужно чтобы в самописном элементе показывалось кто сегодня посетил сайт,а кто нет. Сначала решил реализовать встроив в код сайти форума функцию, но были сильные проблемы. Решил просто в коде сайта вызывать ифрейм который в гет передавал имя пользователся. Но вот проблема.. Если вызываемый пхп фаил в utf8 то выскакивает ошибка Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' Если использовать iconv $userxx = iconv("win1251","UTF8",$_GET['user_name']); то переменная будет пустая Если фаил преобразовать в win1251 , то тоже есть ошибка.. нарыл функцию PHP: function win_utf8($in_text) { $output = ""; $other[1025] = "Ё"; $other[1105] = "ё"; $other[1028] = "Є"; $other[1108] = "є"; $other[1030] = "I"; $other[1110] = "i"; $other[1031] = "Ї"; $other[1111] = "ї"; for ($i = 0; $i < strlen($in_text); $i++){ if (ord($in_text{$i}) > 191) { $output.="&#".(ord($in_text{$i})+848).";"; }else { if (array_search($in_text{$i}, $other)===false){ $output.=$in_text{$i}; }else { $output.="&#".array_search($in_text{$i}, $other).";"; } } } return $output; } Которая приводит ники к таким #1083;#1102;#1073;#1080;#1090;#1077;#1083;#1100; #1088;#1099;#1073;#1072;#1083;#1082;#1080; Потом в коде делаю так : if($userxx == "#1083;#1102;#1073;#1080;#1090;#1077;#1083;#1100; #1088;#1099;#1073;#1072;#1083;#1082;#1080;") {$userxx="Любитель рыбалки";} Убрал перед символами & ибо ачат приводит к нормальному виду И с базой сравнивается отлично.. Но если в нике есть ё,i то ниче не работает( База в UTF8
в начало скрипта: setlocale(LC_ALL,"utf-8"); mb_internal_encoding('UTF-8'); если база в utf8 пеhtl обращением к конкретной таблице пропиши: mysql_query("SET NAMES utf8;");