Страница 1 из 1

Востановление dump, кодировка

Добавлено: 2010-06-28 10:17:40
InventoR
На одном из хостингов сделал

Код: Выделить всё

mysqldump -u % -p base >> /dump.sql
теперь нужно этот dump востановить.
тут же делаю

Код: Выделить всё

mysql -u % -p base < /dump.sql
база восстанавливается, но кириллица вся вопросами.
в настройках этого хостинга ничего не менялось.

тут же копирую к себе на комп этот дамп и загружаю в denwer, как результат вся кириллица тоже вопросами.

Код: Выделить всё

-- MySQL dump 10.11
--
-- Host: localhost    Database: vbbforum1
-- ------------------------------------------------------
-- Server version	5.0.45-log

/*!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 */;

Код: Выделить всё

CREATE TABLE `post` (
  `postid` int(10) unsigned NOT NULL auto_increment,
  `threadid` int(10) unsigned NOT NULL default '0',
  `parentid` int(10) unsigned NOT NULL default '0',
  `username` varchar(100) NOT NULL default '',
  `userid` int(10) unsigned NOT NULL default '0',
  `title` varchar(250) NOT NULL default '',
  `dateline` int(10) unsigned NOT NULL default '0',
  `pagetext` mediumtext,
  `allowsmilie` smallint(6) NOT NULL default '0',
  `showsignature` smallint(6) NOT NULL default '0',
  `ipaddress` varchar(15) NOT NULL default '',
  `iconid` smallint(5) unsigned NOT NULL default '0',
  `visible` smallint(6) NOT NULL default '0',
  `attach` smallint(5) unsigned NOT NULL default '0',
  `infraction` smallint(5) unsigned NOT NULL default '0',
  `reportthreadid` int(10) unsigned NOT NULL default '0',
  `post_thanks_amount` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`postid`),
  KEY `userid` (`userid`),
  KEY `threadid` (`threadid`,`userid`),
  FULLTEXT KEY `title` (`title`,`pagetext`)
) ENGINE=MyISAM AUTO_INCREMENT=261073 DEFAULT CHARSET=cp1251;
Восстанавливается тоже в charset 1251 но везде вопросы с кириллицей.

Код: Выделить всё

[mysqld]
default-character-set = cp1251
init-connect = "set names cp1251"
skip-character-set-client-handshake

[mysql]
default-character-set=cp1251

Re: Востановление dump, кодировка

Добавлено: 2010-07-03 11:29:52
zg
InventoR писал(а):база восстанавливается, но кириллица вся вопросами.
исходный дмап тоже с вопросиками?

Re: Востановление dump, кодировка

Добавлено: 2010-07-03 14:07:12
InventoR
Исходный был в норме, это и пугало.
В общем вот эта строка давала такое:

Код: Выделить всё

/*!40101 SET NAMES utf8 */;

Re: Востановление dump, кодировка

Добавлено: 2010-07-03 17:18:03
zg
InventoR писал(а):В общем вот эта строка давала такое:
значит начальная кодировка была утф-8, а данные вносились в 1251. Правильное решение - перекодировать дамп из 1251 в UTF-8 с помощью iconv и работать в UTF-8.