1 (изменено: ht, 2007-06-27 20:24:48)

Тема: проблема с кодировкой

проблема: перенёс базу от одного хостера к другому (кодировка базы: cp1251_general_ci)
а мене показывает ?????????? в чём проблема?
ps файл закодирован zendom так что дописать строки не могу, а вот к серверу доступ полный)
+файла my.cnf нету, если создаю то после перезагрузки mysql не запускается

2

Re: проблема с кодировкой

Такая же беда ))) Везде где тока можно поставил ср1251 .. А у меня "????? ?????"
или наоборот, убираешь в настройках таблици сравнение ср1251, и  тут PHPMyAdmin же не понимает моих новых созданных слов. Типа кракозябра.
Кароче приходится выбирать между PHPMyAdmin и обычным мускулом ))

А почему у меня на главной странице PHPMyAdmin пишется MySQL-кодировка:  UTF-8 Unicode (utf8)

3

Re: проблема с кодировкой

ht
Покажите пример структуры дампа и пару строк с данными на русском языке. Попробуем разобраться, как данные ложились в БД и раскодировать дамп.

На счет my.cnf - не понял. Разве без него MySQL работает? Как вы создаете my.cnf?

4

Re: проблема с кодировкой

Hanut сказал:

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

-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
-- 
-- Хост: localhost
-- Время создания: Июн 28 2007 г., 00:57
-- Версия сервера: 4.1.22
-- Версия PHP: 5.2.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

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

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

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

CREATE TABLE `mp3` (
  `id` int(6) NOT NULL auto_increment,
  `title` text NOT NULL,
  `artist` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=12 ;

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

INSERT INTO `mp3` (`id`, `title`, `artist`) VALUES 
(1, '??? ???', 'PHP CODE'),
(2, '??? ???', 'PHP CODE'),
(3, 'Command COM', '‘«®?'),
(4, '??? ???????', 'PHP CODE'),
(5, '??? ???????', 'PHP CODE'),
(6, '??? ???????', 'PHP CODE'),
(7, '??? ???????', 'PHP CODE'),
(8, '??? ???????', 'PHP CODE'),
(9, 'Май Админ', 'PHP My Admin'),
(10, '??? ???????', 'PHP CODE'),
(11, '??? ???????', 'PHP CODE');

Те что под знаком вопроса были кирилицой. Добавлял я их с помощью рнр кода. Потом зашел в phpMyAdmin, а он не понимает эту кирилицу. Пришлось сменить сравнение на ср1251, после чего и появились эти `???? ????`...
(9, 'Май Админ', 'PHP My Admin'), - эта строка добавлена с помощью phpMyAdmin.
(3, 'Command COM', '‘«®?') - Эта с помощью коммандной строки мускула.

5

Re: проблема с кодировкой

вот код:
-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 27 2007 г., 21:27
-- Версия сервера: 4.1.12
-- Версия PHP: 4.4.7

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

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

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

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

CREATE TABLE `addons` (
  `id` int(11) NOT NULL auto_increment,
  `textid` varchar(50) NOT NULL default '',
  `name` varchar(255) NOT NULL default '',
  `cost_start` float NOT NULL default '0',
  `cost_monthly` float NOT NULL default '0',
  `unlimforoneorder` int(11) NOT NULL default '0',
  `active` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `textid` (`textid`,`name`,`cost_start`,`cost_monthly`,`unlimforoneorder`),
  KEY `active` (`active`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=25 ;

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

INSERT INTO `addons` VALUES (4, 'Доп. IP адрес', 'Доп. IP адрес', 3, 0, 1, 1);
INSERT INTO `addons` VALUES (5, 'Доп. HDD (1 Гб)', 'Доп. HDD (1 Гб)', 0, 2.8, 1, 1);
INSERT INTO `addons` VALUES (6, 'Доп. HDD (5 Гб)', 'Доп. HDD (5 Гб)', 0, 11, 1, 1);
INSERT INTO `addons` VALUES (7, 'Доп. RAM (128 Мб)', 'Доп. RAM (128 Мб)', 0, 10, 1, 1);
INSERT INTO `addons` VALUES (8, 'Диск для бэкапов (1 Гб)', 'Диск для бэкапов (1 Гб)', 0, 2, 1, 1);
INSERT INTO `addons` VALUES (9, 'Reboots, Reinstall', 'Reboots, Reinstall', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (10, 'Панель DirectAdmin', 'Панель DirectAdmin', 0, 8, 1, 1);
INSERT INTO `addons` VALUES (11, 'Панель Webmin', 'Панель Webmin', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (12, 'Панель ISPConfig', 'Панель ISPConfig', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (13, 'Панель Lxadmin', 'Панель Lxadmin', 0, 4, 1, 1);
INSERT INTO `addons` VALUES (14, 'Панель ISPmanager Lite', 'Панель ISPmanager Lite', 0, 27, 1, 1);
INSERT INTO `addons` VALUES (15, 'ОС Fedora Core 3', 'ОС Fedora Core 3', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (16, 'ОС Fedora Core 4', 'ОС Fedora Core 4', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (17, 'ОС Fedora Core 5', 'ОС Fedora Core 5', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (18, 'ОС Fedora Core 6', 'ОС Fedora Core 6', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (19, '?? CentOS 4.x', '?? CentOS 4.x', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (20, 'ОС Debian GNU/Linux 3.1', 'ОС Debian GNU/Linux 3.1', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (21, 'ОС Debian GNU/Linux 4.0', 'ОС Debian GNU/Linux 4.0', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (22, 'ОС SUSE 9.3', 'ОС SUSE 9.3', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (23, 'ОС OpenSUSE 10.2', 'ОС OpenSUSE 10.2', 0, 0, 1, 1);
INSERT INTO `addons` VALUES (24, '+ip', 'ip', 0, 3, 1, 1);

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

6

Re: проблема с кодировкой

Bear Deon
Вы можете вернуть те крякозябы, которые были? Вопросики в БД уже перекодировать не удастся. Во всяком случае я не знаю как.

ht
У вас с данными все в порядке, вероятно скрипт при соединении устанавливает не ту кодировку. Попробуйте подключить скрипт не под root, или добавьте сразу после соединения запрос:
SET NAMES cp1251;
Вместо последнего, при наличии доступа к my.cnf/my.ini, можно добавить следующую конфигурационную директиву:
init-connect="SET NAMES cp1251"
Таким образом все данные будут приниматься сервером в cp1251.

7 (изменено: ht, 2007-06-28 19:14:09)

Re: проблема с кодировкой

Hanut сказал:

Bear Deon
Вы можете вернуть те крякозябы, которые были? Вопросики в БД уже перекодировать не удастся. Во всяком случае я не знаю как.

ht
У вас с данными все в порядке, вероятно скрипт при соединении устанавливает не ту кодировку. Попробуйте подключить скрипт не под root, или добавьте сразу после соединения запрос:
SET NAMES cp1251;
Вместо последнего, при наличии доступа к my.cnf/my.ini, можно добавить следующую конфигурационную директиву:
init-connect="SET NAMES cp1251"
Таким образом все данные будут приниматься сервером в cp1251.

my.cnf создал в /var/lib/mysql/my.cnf а что за my.ini???

8

Re: проблема с кодировкой

ht сказал:

у меня вроде нет файла my.cnf (конфигурационную директиву поставитьне могу так как скрипт закодирован зендом)

К сожалению, больше ничем помочь не могу.

9

Re: проблема с кодировкой

my.cnf создал в /var/lib/mysql/my.cnf а что за my.ini???

10

Re: проблема с кодировкой

ht
Расширение конфигурационного файла зависит от операционной системы.
my.cnf - Unix
my.ini - Windows

Глобальный конфигурационный файл в Unix, обычно расположен в /etc/my.cnf.
~/.my.cnf - пользовательский.