76

Re: Содержимое таблиц отображается кракозяброй.

Goltara сказал:

Такие же каракули.

Этого не может быть.
Опишите по шагам что вы делаете при импорте.
Откройте дамп в текстовом редакторе, который определяет кодировку и посмотрите в какой кодировке данные в самом файле.

77 (изменено: Goltara, 2008-05-04 22:46:50)

Re: Содержимое таблиц отображается кракозяброй.

Hanut сказал:

Этого не может быть.
Опишите по шагам что вы делаете при импорте.
Откройте дамп в текстовом редакторе, который определяет кодировку и посмотрите в какой кодировке данные в самом файле.

Вот строка из дампа , я так понимаю кодировка здесь ср1251:  ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=64 ;
Мои шаги при импорте:
1.Заходжу в базу;
2.SQL =>Месторасположение текстового файла:=>выбрать=>(выбираю сохраненный архив дампа
ставлю сжатие "Автодетект", кодировку файла ср1251)=>Пошел.
3.Открываю вставленную таблицу и получаю вместо текста
"Ловля жереха на річці"
Пытался втавлять не архив а распакованный текстовый файл - то же самое.

78

Re: Содержимое таблиц отображается кракозяброй.

Goltara
Удалите таблицы из БД и произведите импорт выбрав кодировку файла utf8. Абсолютно невозможно, чтобы появились такие крякозябы в phpMyAdmin в этом случае.

79

Re: Содержимое таблиц отображается кракозяброй.

Hanut сказал:

Goltara
Удалите таблицы из БД и произведите импорт выбрав кодировку файла utf8. Абсолютно невозможно, чтобы появились такие крякозябы в phpMyAdmin в этом случае.

Возможно какойт о баг в phpMyAdmin. Я импортировал поочереди во всех кодировках , которые есть в списке окна импорта - терультат отрицательный, кирилицы так и нет. Может экспортирую не так?
Открываю таблицу => вкладка Экспорт =>сжимаю "gzip"архив=>вперед.
(Экспорт : отмечен чекбокс SQL; SQL опции:Ничего не отмечаю; Структура :отмечаю Add AUTO_INCREMENT value и обратные кавички в названиях таблиц; Данные : отмечаю полная вставка , расширенная вставка, Use hexadecimal for binary fields; EXPORT type INSERT )

80

Re: Содержимое таблиц отображается кракозяброй.

Goltara
Если в дампе вы видите кирилицу - значит экпорт был успешен.

Попробуйте установить новый phpMyAdmin: Базовая установка phpMyAdmin.

И еще, покажите шапку дампа. Комментарии вплоть до первого запроса на создание таблицы.

81

Re: Содержимое таблиц отображается кракозяброй.

Hanut сказал:

Goltara
Если в дампе вы видите кирилицу - значит экпорт был успешен.

Попробуйте установить новый phpMyAdmin: Базовая установка phpMyAdmin.

И еще, покажите шапку дампа. Комментарии вплоть до первого запроса на создание таблицы.

-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Час створення: Трв 05 2008 р., 11:38
-- Версія сервера: 4.1.22
-- Версія PHP: 4.4.7
--
-- БД: `ribalemo`
--

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

--
-- Структура таблиці `data`
--

CREATE TABLE `data` (
  `id` int(5) NOT NULL auto_increment,
  `cat` int(1) NOT NULL default '0',
  `meta_d` varchar(255) NOT NULL default '',
  `meta_k` varchar(255) NOT NULL default '',
  `description` text NOT NULL,
  `text` text NOT NULL,
  `view` int(7) NOT NULL default '0',
  `author` varchar(100) NOT NULL default '',
  `date` date NOT NULL default '0000-00-00',
  `mini_img` varchar(255) NOT NULL default '',
  `title` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=64 ;

--
-- Дамп даних таблиці `data`

82

Re: Содержимое таблиц отображается кракозяброй.

Goltara
Иногда в шапку встраивается запрос SET NAMES, устанавливающий кодировку соединения при импорте, но у вас ничего такого нет. Импорту совершенно ничего не должно мешать.

83 (изменено: Goltara, 2008-05-05 21:03:54)

Re: Содержимое таблиц отображается кракозяброй.

Hanut сказал:

Goltara
Иногда в шапку встраивается запрос SET NAMES, устанавливающий кодировку соединения при импорте, но у вас ничего такого нет. Импорту совершенно ничего не должно мешать.

Тогда я уже не знаю где искать ошибку. Подозрения упали на глюки в MySQL , у меня стаяла 5 версия, переустановил 4 . Импортировал таблицу в базу , и в этой версии те же каракули. Я в отчаяньи.
Может мне поменять MySQL Charset  на UTF-8Unicode вот только незнаю как это сделать через phpMyAdmin.

84

Re: Содержимое таблиц отображается кракозяброй.

Goltara
У меня остался только один вариант. Попробуйте прописать кодировку соединения в дампе. Добавьте в шапку дампа, обязательно до всех запросов, данную строку.

SET NAMES 'utf8';

85

Re: Содержимое таблиц отображается кракозяброй.

Hanut сказал:

Goltara
У меня остался только один вариант. Попробуйте прописать кодировку соединения в дампе. Добавьте в шапку дампа, обязательно до всех запросов, данную строку.

SET NAMES 'utf8';

А можно на премере показать где это прописывать, я плохо еще знаю MySQL  и не могу понять где должен быть этот код.

86

Re: Содержимое таблиц отображается кракозяброй.

Шапка вашего дампа с прописанной строкой.
Редактировать дамп следует в специализированном текстовом редакторе, например, Notepad++ (ни в коем случае не в Блокноте).

-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
-- 
-- Хост: localhost
-- Час створення: Трв 05 2008 р., 11:38
-- Версія сервера: 4.1.22
-- Версія PHP: 4.4.7
-- 
-- БД: `ribalemo`
-- 

-- --------------------------------------------------------
SET NAMES 'utf8';
-- 
-- Структура таблиці `data`
--

87

Re: Содержимое таблиц отображается кракозяброй.

Hanut, хочу выразить Вам свою благодарность за потраченное на меня время. Спасибо Вам большое!!!
Тепрь у меня в базе кирилица ! Получилось! SET NAMES 'utf8'; сработало.
Только если можно подскажите почему так получалось или как впредь обойти такую проблему .
Или наконец подскажите ссылочку на какой нибудь учебник или статтью что б до конца я мог осознать процес и понять почему просиходила эта ошибка.
Еще раз огромное спасибо!!!

88

Re: Содержимое таблиц отображается кракозяброй.

Goltara
phpMyAdmin изначально, если явно не задано иное, создает дамп в кодировке utf8, что является правильным и предпочтительным. При импорте, выбор кодировки дампа utf8, должен кооректно произвести вставку данных и в данном случае я не понимаю почему это не работало. Судя по всему в настройках конфигурационного файл MySQL (my.ini) находится строка
init-connect="SET NAMES cp1251"
которая устанавливае кодировку соединения, если она явно не задана. Получалось, что импортируемые данные находясь в utf8 импортировались при кодировке соединения cp1251, что и вызывало крякозябы. Можно, конечно заменить в my.ini кодировку соединения устанавливаемую изначально, но мне кажется, что лучше было бы установить новую версию phpMyAdmin, корректно ее настроив. Это должно снять проблемы с выбором кодировки файла на странице импорта и будет работать вне зависимости от кодировки соединения.

89

Re: Содержимое таблиц отображается кракозяброй.

Установил phpMyAdmin - 2.11.6 . Первое поверхностное ознакомление приятно радует.

90

Re: Содержимое таблиц отображается кракозяброй.

Здравствуйте, прочитал всю ветку, но проблема осталась. Мне нужно, чтобы всё было в кодировке Win-1251 (character-set*** = cp1251
collation*** = cp1251_general_ci)

character_set_client      utf8
character_set_connection     cp1251
character_set_database     cp1251
character_set_filesystem     binary
character_set_results     utf8
character_set_server     cp1251
character_set_system     utf8

my.cnf сказал:

[client]
default-character-set = cp1251
default-collation = cp1251_general_ci
character-set-client = cp1251
collation-client = cp1251_general_ci

[mysqld]
default-character-set = cp1251
default-collation = cp1251_general_ci
init-connect = "SET NAMES cp1251"
character-set-server = cp1251
collation-server = cp1251_general_ci
character-set-client = cp1251
collation-client = cp1251_general_ci

[mysql]
default-character-set = cp1251
default-collation = cp1251_general_ci

[dbdmysql]
default-character-set = cp1251
default-collation = cp1251_general_ci

Если страшно выглядит - сильно не пинайте, т.к. в MySQL мягко говоря очень плохо разбираюсь.
Версия MySQL-клиента: 5.0.51b.
phpMyAdmin - 2.11.7

Так собственно в чём проблема. Я так понимаю, character_set_connection, character_set_database ... character_set_system - они все должны быть в одной кодировке. Как видно, некоторые я худо-бедно настроил, а как остальные - не знаю. Может, сообщите, что и куда надо прописать в my.cnf, чтобы соответствующим образом настроить character_set_client, character_set_filesystem, character_set_results, character_set_system? В базе данных отображается нормальный текст, а на форуме - знаки вопроса. И ещё, в phpMyAdmin несмотря ни на что отображается

MySQL-кодировка:  UTF-8 Unicode (utf8)

91

Re: Содержимое таблиц отображается кракозяброй.

Lex-BY
В my.cnf в разделах [client] и [mysqld], проверьте корректность пути к каталогу содержащему файлы описания кодировок.
В разделах [mysql] и [mysqld] устанавливаем default-character-set=cp1251.
В разделе [mysqld] добавляем строку init-connect="SET NAMES cp1251".
Все остальное совершенно ни к чему, так как другие настройки зависимы от выбранной кодировки сравнения (SET NAMES) и устанавливаются автоматически.

phpMyAdmin всегда работает в utf8 и никак иначе, поэтому вы и видите такие настройки.
Посмотрите вывод запроса (глобальные значения, то есть именно те, что использует клиент PHP):

SHOW GLOBAL VARIABLES LIKE 'char%';

Посмотрите какая кодировка таблиц и БД. Кодировку БД можно увидеть в столбце, внизу кодировок таблиц, поле "Сравнение".
Менять кодировки БД и таблиц можно только при новом импорте, вместе с данными. Посмотрите дамп, который вы импортировали, какие кодировки уровня таблиц стоят там.

92

Re: Содержимое таблиц отображается кракозяброй.

В my.cnf в разделах [client] и [mysqld], проверьте корректность пути к каталогу содержащему файлы описания кодировок.

MySQL стоит в D:/XAMPP_v1-6-7/mysql. У меня там уже написано:
В [mysqld]:
socket= "D:/XAMPP_v1-6-7/mysql/mysql.sock"
basedir="D:/XAMPP_v1-6-7/mysql"
tmpdir="D:/XAMPP_v1-6-7/tmp"
datadir="D:/XAMPP_v1-6-7/mysql/data"

В [client]:
socket          = "D:/XAMPP_v1-6-7/mysql/mysql.sock"

default-character-set=cp1251 вместе с collation уже написал (см пост выше).
init-connect="SET NAMES cp1251" - написал в [mysqld].

На это

SHOW GLOBAL VARIABLES LIKE 'char%';

он ответил так:

character_set_client      cp1251
character_set_connection     cp1251
character_set_database     cp1251
character_set_filesystem     binary
character_set_results     cp1251
character_set_server     cp1251
character_set_system     utf8
character_sets_dir     D:\XAMPP_v1-6-7\mysql\share\charsets\

а на это:

SHOW VARIABLES LIKE 'character%'

ситуация осталась прежней:

character_set_client      utf8
character_set_connection     cp1251
character_set_database     cp1251
character_set_filesystem     binary
character_set_results     utf8
character_set_server     cp1251
character_set_system     utf8
character_sets_dir     D:\XAMPP_v1-6-7\mysql\share\charsets\

На форуме по-прежнему знаки вопроса.

93

Re: Содержимое таблиц отображается кракозяброй.

Lex-BY
С настройками MySQL у вас все нормально.
character_sets_dir     D:\XAMPP_v1-6-7\mysql\share\charsets\ - это и есть каталог содержащий файлы описания кодировок и читается он нормально, поэтому здесь тоже все хорошо.

SHOW VARIABLES LIKE 'character%' показывает utf8 потому что phpMyAdmin всегда работает в utf8. Это совершенно никак не сказывается на данных в cp1251, так как они корректно перекодируются для отображения.

Вопросики на сайте у вас по другой причине. Повторюсь.

Посмотрите какая кодировка таблиц и БД. Кодировку БД можно увидеть в столбце, внизу кодировок таблиц, поле "Сравнение".
Менять кодировки БД и таблиц можно только при новом импорте, вместе с данными. Посмотрите дамп, который вы импортировали, какие кодировки уровня таблиц стоят там.

1) Выберите БД, перейдите на страницу "Операции" и посмотрите снизу "Сравнение" (не меняйте его).
2) Возьмите импортированный дамп, откройте его в специализированном текстовом редакторе (например Notepad++) и скопируйте оттуда структуру любой таблицы в которой содержится кирилица. Это позволит понять в какой кодировке таблицы. Также посмотрите правильно ли в файле дампа отображается кирилица.

94 (изменено: Lex-BY, 2008-07-16 19:52:50)

Re: Содержимое таблиц отображается кракозяброй.

И в самой базе данных (на вкладке "операции"), и в таблицах сравнение уже стоит на cp1251_general_ci.
Дамп - не совсем понял, что это такое. Если это файл sql, который получается при экспорте, и открывается текстовиком, то там нормально отображается. Notepad++ я использую по дефолту. Вот кусок из этого файла:
[spoiler]# Table structure for table `smf_boards`
#

DROP TABLE IF EXISTS `smf_boards`;

CREATE TABLE `smf_boards` (
  ID_BOARD smallint(5) unsigned NOT NULL auto_increment,
  ID_CAT tinyint(4) unsigned NOT NULL default 0,
  childLevel tinyint(4) unsigned NOT NULL default 0,
  ID_PARENT smallint(5) unsigned NOT NULL default 0,
  boardOrder smallint(5) NOT NULL default 0,
  ID_LAST_MSG int(10) unsigned NOT NULL default 0,
  ID_MSG_UPDATED int(10) unsigned NOT NULL default 0,
  memberGroups varchar(255) NOT NULL default '-1,0',
  name tinytext NOT NULL,
  description text NOT NULL,
  numTopics mediumint(8) unsigned NOT NULL default 0,
  numPosts mediumint(8) unsigned NOT NULL default 0,
  countPosts tinyint(4) NOT NULL default 0,
  ID_THEME tinyint(4) unsigned NOT NULL default 0,
  permission_mode tinyint(4) unsigned NOT NULL default 0,
  override_theme tinyint(4) unsigned NOT NULL default 0,
  sort_method varchar(60) NOT NULL default '',
  sort_order tinyint(4) NOT NULL default 0,
  PRIMARY KEY (ID_BOARD),
  UNIQUE categories (ID_CAT, ID_BOARD),
  KEY ID_PARENT (ID_PARENT),
  KEY ID_MSG_UPDATED (ID_MSG_UPDATED),
  KEY memberGroups (memberGroups(48))
) TYPE=MyISAM  DEFAULT CHARSET=cp1251 DEFAULT COLLATE=cp1251_general_ci;

#
# Dumping data in `smf_boards`
#

INSERT INTO `smf_boards`
    (`ID_BOARD`, `ID_CAT`, `childLevel`, `ID_PARENT`, `boardOrder`, `ID_LAST_MSG`, `ID_MSG_UPDATED`, `memberGroups`, `name`, `description`, `numTopics`, `numPosts`, `countPosts`, `ID_THEME`, `permission_mode`, `override_theme`, `sort_method`, `sort_order`)
VALUES (2, 1, 0, 0, 1, 6, 6, '0,9,10,11,12,13,14', 'FAQ. Правила. Политика. Технические вопросы.', 'Это интереснее, чем Вам кажется с 1 взгляда. К тому же, при регистрации Вы обязывались это прочитать.', 1, 4, 1, 0, 4, 1, '', 0),
    (5, 1, 0, 0, 2, 9, 9, '0,2,9,10,11,12,13,14', 'Основной раздел.', 'Здесь всё, что касается собственно проекта.', 1, 3, 0, 0, 0, 1, '', 0),
    (6, 1, 0, 0, 3, 0, 0, '2,11,12,13,14', 'Закрытый раздел.', 'Сюда имеют доступ только активные участники проекта, модераторы и администраторы.', 0, 0, 1, 0, 0, 1, '', 0);
# --------------------------------------------------------[/spoiler]

95

Re: Содержимое таблиц отображается кракозяброй.

Lex-BY
Не вижу совершенно никаких проблем. Все у вас в порядке и должно работать. Сами страницы форума в какой кодировке открываются?

Запустите phpinfo() и посмотрите значение директивы default_charset.

<?php phpinfo(); ?>

96

Re: Содержимое таблиц отображается кракозяброй.

В XAMPP обнаружил такой пункт - phpinfo() и файл php с аналогичным содержимым. Надеюсь, ничего страшного, что вызывал не через phpMyAdmin, потому что это не MYSQL-запрос. Вот пункт из полученой таблицы:

default_charset    no value    no value

97

Re: Содержимое таблиц отображается кракозяброй.

Lex-BY
Не вижу никаких проблем.
Повторюсь, - в какой кодировке открываются страницы форума? Возможно сам форум не настроен.

98

Re: Содержимое таблиц отображается кракозяброй.

А как это узнать? Я ставил форум SMF v1.1.5 из дистриба с оф. сайта, оттуда же скачивал пакет локализации. Было 2 варианта - utf8 и без указания, какая там кодировка (но на сайте русской поддержки сказано, что Win1251). Я поставил 2-ой вариант.
Симптомы были такие же, как у всех - на форуме текст норм., в БД крякозябра. После того, как попробовал сделать бекап (из админки форума) и восстановить его (из phpMyAdmin) - в БД стало отображаться нормально, а на форуме - знаки вопроса.
Я так понимаю, проблема с MySQL решена? (в my.cnf уже  добавил нужные строки) Мне теперь обращаться на сайт поддержки форума, или ещё что-то может быть с MySQL/phpMyAdmin?

99

Re: Содержимое таблиц отображается кракозяброй.

Lex-BY
Похоже на проблемы настройки самого форума. В настройках MySQL я ничего подозрительного не вижу.
Если в БД записывались крякозябы, значит кодировка соединения с MySQL у форума выставлена неверно. Если бы вы показали вид крякозябов, можно было бы сказать какая кодировка использовалась, но причину сказать сложно, по идее у форума должна существовать настройка кодировки.

Кодировку страницы узнать просто - откройте страницу, нажмите правой кнопкой и посмотрите Encoding (кодировка). Но подозреваю, что там будет все нормально: windows-1251.

100

Re: Содержимое таблиц отображается кракозяброй.

Сейчас уже не могу показать вид крякозябров, т.к. теперь в базе норм выглядит, а на форуме - обычные знаки вопроса. Настройки кодировки у форума нет, но на сайте русской поддержки я наткнулся на инструкции перед установкой, связанные как раз с последующей настройкой кодировок
В общем, отвлекать больше Вас не буду. Спасибо огромное за консультацию.
Как выясню, что за проблема и как её устранить - отпишусь здесь.