1 (изменено: SemT, 2008-05-18 01:36:47)

Тема: При импорте БД русский текст отображается ввиде ???????? Помогите!

phpMyAdmin 2.11.00 сделал в нем экспорт БД по умолчанию в файл, перед своими эксперементами с БД. Поэксперементитровал, потом все прибил, попробовал импортировать обратно и тут меня ждал сюрпиз, весь русский тескт в виде ???????. Изначально текст в phpMyAdmin был с кодировкой 1251. После я пытался в Total Commander XP через F4 открывать файл и выбирать разные кодировки. Результат нулевой. В файле текст ввиде ???????????????.  Попробовал текст открыть через Shtirliz4 тоже не помогает. Что делать? Как вернуть Русский язык базе!

2

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

SemT
Если в файле дампа русский текст отображается вопросиками, то, к сожалению, вернуть его уже нельзя.

3 (изменено: biodrave, 2008-06-30 13:21:03)

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

Добрый день !

У меня приблизительно такая же проблема.

Только в дампе все отображается нормально, а вот когда этот дамп импортируешь содержание моего форума отображается вот так ????????????????????????? Причем только посты сам форум титлы все в порядке !?

Что делать как быть помогите плиз

Вот здесь можно помотреть http://www.radimex.de/healthy_travel_ru/news/

4

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

biodrave
1) Покажите структуру любой таблицы, которая содержит кирилицу (запрос начиная с CREATE TABLE).
2) В phpMyAdmin выберите БД и перейдите по ссылке "Операции", посмотрите на установленное сравнение (снизу).
3) В phpMyAdmin выполните запрос и покажите результат:

SHOW GLOBAL VARIABLES LIKE 'char%';

5 (изменено: Hanut, 2008-08-25 21:23:19)

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

Показывает следующие:

6

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

biodrave
По первому пункту: надо открыть дамп в текстовом редакторе (например Notepad++) и скопировать оттуда запрос начиная с CREATE TABLE и до первого INSERT. Таблица с которой берется структура, должна содержать кирилицу.

7 (изменено: biodrave, 2008-07-02 11:53:16)

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

Несовсем понял что делать после копирования запроса начиная с "CREATE TABLE и до первого INSERT" ?

Выглядит вот так:

-- phpMyAdmin SQL Dump
-- version 2.11.4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 26 2008 г., 15:10
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `healthy_phpbb`
--

-- --------------------------------------------------------

--
-- Структура таблицы `phpbb_auth_access`
--

CREATE TABLE `phpbb_auth_access` (
  `group_id` mediumint(8) NOT NULL default '0',
  `forum_id` smallint(5) unsigned NOT NULL default '0',
  `auth_view` tinyint(1) NOT NULL default '0',
  `auth_read` tinyint(1) NOT NULL default '0',
  `auth_post` tinyint(1) NOT NULL default '0',
  `auth_reply` tinyint(1) NOT NULL default '0',
  `auth_edit` tinyint(1) NOT NULL default '0',
  `auth_delete` tinyint(1) NOT NULL default '0',
  `auth_sticky` tinyint(1) NOT NULL default '0',
  `auth_announce` tinyint(1) NOT NULL default '0',
  `auth_vote` tinyint(1) NOT NULL default '0',
  `auth_pollcreate` tinyint(1) NOT NULL default '0',
  `auth_attachments` tinyint(1) NOT NULL default '0',
  `auth_mod` tinyint(1) NOT NULL default '0',
  KEY `group_id` (`group_id`),
  KEY `forum_id` (`forum_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `phpbb_auth_access`
--


-- --------------------------------------------------------

--
-- Структура таблицы `phpbb_banlist`
--

CREATE TABLE `phpbb_banlist` (
  `ban_id` mediumint(8) unsigned NOT NULL auto_increment,
  `ban_userid` mediumint(8) NOT NULL default '0',
  `ban_ip` varchar(8) NOT NULL default '',
  `ban_email` varchar(255) default NULL,
  PRIMARY KEY  (`ban_id`),
  KEY `ban_ip_user_id` (`ban_ip`,`ban_userid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

--
-- Дамп данных таблицы `phpbb_banlist`
--


-- --------------------------------------------------------

--
-- Структура таблицы `phpbb_categories`
--

CREATE TABLE `phpbb_categories` (
  `cat_id` mediumint(8) unsigned NOT NULL auto_increment,
  `cat_title` varchar(100) default NULL,
  `cat_order` mediumint(8) unsigned NOT NULL default '0',
  PRIMARY KEY  (`cat_id`),
  KEY `cat_order` (`cat_order`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

8

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

biodrave
Причина вопросиков в том что кодировка соединения с MySQL стоит в latin1, а данные в таблицах с кодировкой cp1251.

При наличии доступа к конфигурационному файлу MySQL (my.cnf), добавьте в раздел [mysqld] слудующие две строки:

init-connect="SET NAMES cp1251"
default-character-set=cp1251

После чего перезагрузите сервис MySQL.

Если доступа к my.cnf нет, то уточните версию форума phpBB.

9 (изменено: biodrave, 2008-07-03 18:20:40)

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

Доступа в my.cnf к сожалению нет. : (

А версия форума phpBB 2.0.22

Попробовал дампер от  http://www.sypex.net,  а он не видит мою ДБ причем у меня там их три две видит а иммено ту которая нужна не видит.

Они как раз проблему вопросиков и себя на сайте обсуждают подробно в документиции.

10

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

biodrave
Никакой дампер вам не нужен, ведь если в дампе видна кирилица, таблицы и БД в кодировке cp1251, то никаких проблем с дампом нет, причина в неверной кодировке соединения с MySQL, причина чему неверная конфигурация. Такое иногда бывает на непроффесиональных местных, или заграничных хостингах.

Попробуйте внести в скрипт форума следующие изменения.

1) db/mysql.php строка 54

$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
// Добавьте после нее следующую строку.
@mysql_query('SET NAMES cp1251', $this->db_connect_id);

2) db/mysql4.php строка 48

$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
// Добавьте после нее следующую строку
@mysql_query('SET NAMES cp1251', $this->db_connect_id);

После внесения изменений, кирилица должна появиться.

11

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

Спасибо !!! Все сработало. : )

12

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

У мня примерно такая же проблемма! только в движке DLE: изначально делал сайт у себя на компе, купил хост, решил перенести, вроде все сделал тока проблема с базой! Я сделал Экспорт у себя на компе Все успешно, попытался перенести на хостинг. И при переносте все русские буквы превращаются в вопросики (?????). Если я пишу че нить новое, то норм. Но импортированная база уже запорота, подскажите плиз как прально экспортировать эту базу, что б ин-фа отображалась
PS версии phpMyAdmin разные у мну стоит  3.1.0? а на серваке 2.11.6. И если это важно DLE версии 7 ХЕЛП ПЛИИЗ!!

13

Re: При импорте БД русский текст отображается ввиде ???????? Помогите!

Paradise
1) Покажите структуру любой таблицы из дампа, которая содержит кирилицу (запрос начиная с CREATE TABLE).
2) В phpMyAdmin выберите БД и перейдите по ссылке "Операции", посмотрите на установленное сравнение (снизу).
3) В phpMyAdmin выполните запрос и покажите результаты:

SHOW GLOBAL VARIABLES LIKE 'char%';

2 и 3 делать на удаленном сервере.