это как? что-то я не помню, чтобы у MySQL была возможность задать кодировку отдельно для INSERT/UPDATE.
расскажите, что конкретно у вас в настройках кодировок mysql (выполните команду "SHOW VARIABLES WHERE Variable_name LIKE "c%"", подключившись клиентом, который не делает никаких "SET CHARACTER SET xyz" & Co). кстати, можете попробовать начать диагностику с ). также не забудьте добавить, какая кодировка у вас задана для таблиц (например выполнив команду "SHOW CREATE TABLE таблица"). полагаю, что именно в этом проблема.
Файлы в windows-1251. БД в 1251. В строке подключения к БД ?charset=cp1251
вы забыли рассказать, что у вас в $request:charset. полагаю, что "windows-1251", но будет лучше, если вы это перепроверите.
кроме того, вы забыли сообщить, попробовали-ли ли вы локализовать проблему, сделав простенький тестовый, который и содержит в себе определение строки соединения и делает update с select и выводит данные. также будет здорово, если этот скрипт сначала будет создавать тестовую таблицу.
$request:charset - да windows-1251/ _test.html - пробовал. Вот что пишет
SQL преобразование строки с русским алфавитом к верхнему регистру:
Преобразование было произведено не корректно.
Результат: '?????????????????????????????????' (должно быть: 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ').
Проверка значений переменных SQL сервера CHARACTER_SET/CHARACTER_SET_CLIENT:
Значение переменой CHARACTER_SET_CLIENT совпадает со значением $request:charset, следовательно в настоящий момент кодировки настроены верно.
Вот что дает SHOW VARIABLES WHERE Variable_name LIKE "c%"
CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT '',
`descr` text NOT NULL, `news` text NOT NULL,
PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=33555374 DEFAULT CHARSET=cp1251