Прошу администраторов не удалять тему, советы из прошлых тем не помогают. Стоит PHP5.2.6, MySQL 4.1.22. MySQL-кодировка: Windows Cyrillic (cp1251). Сопоставление соединения с MySQL: cp1251_general_ci. в корн. каталоге лежит .htaccess : Код (Text): CharsetPriority cp1251 CharsetDefault cp1251 CharsetSourceEnc cp1251 AddDefaultCharset cp1251 вначале каждой страницы: Код (Text): <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> и PHP: include_once ("../config.php"); со следующим содержанием: ... $mysql_connect = mysql_connect($dbhost, $dbusername, $dbpass); $selectdb = mysql_select_db($dbname); mysql_query("SET NAMES 'cp1251';"); mysql_query("SET CHARACTER SET 'cp1251';"); mysql_query("SET SESSION collation_connection = 'cp1251_general_ci';"); ?> Если sqlзапросом в phpMyAdmin занести строку в таблицу, то сохраняется в БД и потом выводится строка по-русски, а если скриптом заносится PHP: $sql = "INSERT INTO table (name) VALUES ('$name')"; ,то сохраняется в БД - êîðà&aacu и выводится потом на страницу - êîðà&aacu. Не могу понять, что за напасть такая?[/sql][/php]
Это одна из версий запроса, до этого были без ;, но разницы никакой, запрос и так и так работает. При создании таблиц: [sql] CREATE TABLE table ( ... PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_ci; [/sql] phpMyAdmin показывает значение полей name varchar(25) cp1251_general_ci ....
Спасибо всем за отклик, нашел причину. Все дело оказалось в htmlentities. Не знал, что эта функция перекодирует в т.ч. и русские буквы. Заменил на htmlspecialchars , добавил третий параметр cp1251, и все заработало. А я два дня издевался над БД ....