Задавайте вопросы, мы ответим
Вы не зашли.
При переносе базы возникли проблемы с кодировкой - кириллица показывает ?????
Server version: отсюда - 5.0.45 сюда - 4.1.22
Новый хостер ничего придумать не смог
Как перекодировать базу?
Неактивен
Должно быть в порядке в принципе. Поддержка кириллицы на 4.1 аналогична 5.0. Как выглядит Ваш дамп? Покажите кусочек из начала (где SET NAMES), кусочек из CREATE TABLE и кусочек с реальной инфой.
Возможно, что все в порядке, но приложение отображает неправильно (разные уставновки сервера по умолчанию), попробуйте там где у Вас mysql_connect(), следующей строчкой написать mysql_query("SET NAMES cp1251"), есть конечно сайт у Вас в cp1251
Неактивен
-- MySQL dump 10.11
--
-- Host: localhost Database: faq
-- ------------------------------------------------------
-- Server version 5.0.45-community
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `dnp_faq_main`
--
DROP TABLE IF EXISTS `dnp_faq_main`;
CREATE TABLE `dnp_faq_main` (
`idnum` int(11) NOT NULL auto_increment,
`time` varchar(5) default NULL,
`datum` date default NULL,
`vopros` text,
`otvet` text,
`name` varchar(60) default NULL,
`email` varchar(100) default NULL,
PRIMARY KEY (`idnum`)
) ENGINE=MyISAM AUTO_INCREMENT=82 DEFAULT CHARSET=cp1251;
--
-- Dumping data for table `dnp_faq_main`
--
LOCK TABLES `dnp_faq_main` WRITE;
/*!40000 ALTER TABLE `dnp_faq_main` DISABLE KEYS */;
INSERT INTO `dnp_faq_main` (`idnum`, `time`, `datum`, `vopros`, `otvet`, `name`, `email`) VALUES (2,'19:43','2006-12-17','Возьмете?','Отвечает Модератор','Baby','b@g.com'),(5,'19:44','2006-12-17','Конкурсы?','<b>Отвечает Администратор</b>:<br />\r\nА где? Ну?<br />\r\nПодскажите!<br />
/*!40000 ALTER TABLE `dnp_faq_main` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `dnp_faq_new`
--
DROP TABLE IF EXISTS `dnp_faq_new`;
CREATE TABLE `dnp_faq_new` (
`idnum` int(11) NOT NULL auto_increment,
`time` varchar(5) default NULL,
`datum` date default NULL,
`vopros` text,
`name` varchar(60) default NULL,
`email` varchar(100) default NULL,
`ip` text,
`brouser` text,
PRIMARY KEY (`idnum`)
) ENGINE=MyISAM AUTO_INCREMENT=80 DEFAULT CHARSET=cp1251;
--
-- Dumping data for table `dnp_faq_new`
--
LOCK TABLES `dnp_faq_new` WRITE;
/*!40000 ALTER TABLE `dnp_faq_new` DISABLE KEYS */;
INSERT INTO `dnp_faq_new` (`idnum`, `time`, `datum`, `vopros`, `name`, `email`, `ip`, `brouser`) VALUES (68,'08:24','2007-11-23','wo','zzz','web@www.com',66.66.66.66::','Mozilla/4.0 (compatible; MSIE 12.0; Windows NT 8.1; SV1; .NET CLR 1.1.4322)');
/*!40000 ALTER TABLE `dnp_faq_new` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2008-01-03 5:04:38
Отредактированно Boris Yakshov (28.01.2008 18:14:14)
Неактивен
upc
это mysql_query("SET NAMES cp1251"),
сработало
Неактивен
не сработало
кусок из ДБ
-- MySQL dump 10.11
--
-- Host: localhost Database:
-- ------------------------------------------------------
-- Server version 5.0.45-community
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `spnuke_admins`
--
DROP TABLE IF EXISTS `spnuke_admins`;
CREATE TABLE `spnuke_admins` (
`admins_login` varchar(255) NOT NULL default '',
`admins_key_name` varchar(255) NOT NULL default '',
`admins_email` varchar(255) NOT NULL default '',
`admins_password` varchar(255) NOT NULL default '',
PRIMARY KEY (`admins_login`),
KEY `admins_key_name` (`admins_key_name`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
--
-- Dumping data for table `spnuke_admins`
--
Отредактированно Boris Yakshov (28.01.2008 18:10:24)
Неактивен
1. убедитесь, что Вы нашли все упонинания mysql_connect и после них добавили SET NAMES. Если используется абстракция БД, то надо mysql_query заменить на то, как запросы выглядят в данной абстракции, что-то вроде $db->query("SET NAMES cp1251");
2. вы привели хороший дамп, один вопрос - русский текст в нем Вы читаете, если дамп смотреть в UTF8? Правильно ли я понимаю, что если Вы дамп откроете в notepad, то в нем будет абракадабра вместо русских букв? Если это не так и дамп открывается и читает блокнотом, то Вам нужно в его начале изменить SET NAMES utf8 на SET NAMES cp1251
Неактивен
Поищу все коннекты. Только дело в том, что весь сайт состоит и 7 кусков, у всех свои базы и скрипты.
Нет ли решения типа конвертер базы данных? Без переписывания скриптов?
Там есть например форум еще на PHPBB, на русском, с той же проблемой.
Т.е. очень не хочется прикасаться к скриптам
Русский текст в дампе читается, Штирлиц-4 я уже пробовал
Отредактированно Boris Yakshov (28.01.2008 18:11:19)
Неактивен
Конвертировать базу не надо, так как она в порядке. Вам надо установить кодировку по умолчанию для клиента. В данном случае клиентом является php. У большинства русских хостеров по умолчанию везде прописана cp1251, поэтому проблем не возникает. Как я понимаю, php всегда подключается в той кодировке, с которой он скомпилирован.
Неактивен
Ваша правда. Другого выхода нет, буду переписывать скрипты. 3 раздела, зависящие от баз уже получились. Не так страшен черт как его малюют
Неактивен
Есть еще один вариант. Качество не гарантирую.
Если таблиц не много, то можно каждую привести к типу хранилища MYISAM командой
ALTER TABLE `названиетаблицы` ENGINE = MyISAM;
Таким образом таблица будет представлять три файла на диске в папке под именем базы данных.
Попробуйте перенести эти файлы (можно целиком папку базы данных) на другой сервер. Должно получиться.
Неактивен
Спасибо за советы. Все уже получилось путем SET NAMES cp1251
Неактивен