26

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Вот старый хостинг на котором был сделан дамп базы MySQL
Версия MySQL 5.0.24-log   
Версия PHP 5.1.6


А вот новый на который всё переехало
Версия PHP 4.4.2
Версия MySQL 4.1.21-standard


Результат переезда можно посмотреть здесь  http://www.sacd.com.ua/index.php

Действия которые проводились
В самом дамп(открыл редактором блокнот) выберал -
заменил , что: cp1251 чем latin1,
сохранил дамп , захожу в
ПхпМайАдмин, Импорт - Кодировка latin1 , загружаю дамп.
(Предварительно удалив старую БД).


Техподдержка с хостинга говорит что перейти с 5 версии на 4-ую невозможно.
Нужно всё с начала набирать руками sad

Не могу поверить, неужели сконвертировать невозможно?

27

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Всё! разобрался с кодировками.

Оказалось всё просто

Сделал в phpMyAdmin импорт базы из 5 версии в MySQL40
Потом получившийся дамп

открыл в блокноте, скопировал из блокнота в новый файл  с кодировкой windows и залил через пхпмайадмин на новый хостиг установив при заливке сопоставление с latin1

28

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

SuperStalker пишет:

Сделал в phpMyAdmin импорт базы из 5 версии в MySQL40

Вы хотели сказать "экспорт из 5 версии в MySQL40"!? smile

ВКонтакте Facebook Twitter

29

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Yes! точно ЭКСПОРТ, а не ИМПОРТ!

Ошибся малехо от радости.

Результат всего этого кодирования-раскодирования здесь
www.sacd.com.ua

30

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

SuperStalker
Замечательный у вас сайт. Очень рад, что вы справились с понижающим переходом. Надеюсь с функциями php5 у вас проблем не будет.

Приходите ещё, будем рады.

ВКонтакте Facebook Twitter

31

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Помогите пожалуйста.
Я не могу понять, что у меня происходит с кодировкой. Вроде бы, как у всех, вопросики. И я уже перечитал несколько форукмов с советами.
У меня локальная сеть. Хочу поставить движок новостного сайта DataLife Engine v.4.5 (5.0)
Вся проблема в том, что когда я его устанавливаю, (предварительно создав базу) он заивает свои дефолтные базы в MySQL, там по умолчанию уже висит 3 объявления и на русском языке. Их можно удалить и навешать своих объявлений и всё будет тоже работать нормально. Даже перезагружал сервер и всё работало. Но стоило мне тронуть саму базу, как всё сразу становилось полной х????й. Тронуть базу, я имел ввиду к примеру зайти в MySQL и сделать дамп базы, перезалить её.
Я пробовал создавать базу с latin1, пробовал с cp1251, игрался настроиками. В самой базе текст отображается правильно.
Конекчусь я из под юзера с правами root ( GRANT ALL PRIVIGEGES ON *.* TO news@loca.......). Я проверял командой show variables like 'char%' показавает везде кодировку cp1251 и только в character_set_system   utf8
Ещё у меня установлен форум vBulletin v3.6.2, так с ним всё впорядке и всё классно работает. Базу пробовал полностью перезаливать даже с доругого компа ве было впорядке.
У меня установлено:
Apache 2.0.55
PHP 5.1.6
MySQL 4.1.21
и Perl тудаже до кучи smile
Всё это работает на WinDOS 2003 Standart SP1

32

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

У меня такая же проблема перепробовал всё и всеравно выводятся одни вопросы в my.ini прописал как всё в той статье, база в кодировке 1251 а всеравно вопросы, помогите пожалуйста что я дела не так?

33

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Конекчусь я из под юзера с правами root ( GRANT ALL PRIVIGEGES ON *.* TO news@loca.......).

Сие есть ошибка. Попробуйте создать нового пользователя, задайте ему ограниченные привилегии и соединитесь под ним, затем "трогайте" вашу БД. Думаю всё будет нормально. Что касается ограниченных привелегий, то подумайте что именно использует скрипт сайта, или форум, и не выдавайте прав больше, чем надо. Как правило хватает: SELECT, INSERT, UPDATE и DELETE.

ВКонтакте Facebook Twitter

34

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Hanut пишет:

Сие есть ошибка. Попробуйте создать нового пользователя, задайте ему ограниченные привилегии и соединитесь под ним, затем "трогайте" вашу БД. Думаю всё будет нормально. Что касается ограниченных привелегий, то подумайте что именно использует скрипт сайта, или форум, и не выдавайте прав больше, чем надо. Как правило хватает: SELECT, INSERT, UPDATE и DELETE.

Спасибо за совет. Я попробовал, но это не помогло.
У меня всёравно для всех сейчас включена кодировак cp1251
Может есть ещё какието ваианты? Может что то с этим конкретным движком? Но в и-нете им пользуются и на русском языке....

Отредактировано sEr (2006-11-05 03:01:43)

35

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

У меня возникла данная проблема с переходом на более новую версию PHP MyAdmin (2.9.0.2). Версия MySql - 4.1.21.

Преамбула:
Сервер удаленный (хостерский), поэтому менять настройки по своему желанию не могу.
PhpMyAdmin тоже хостерский, следовательно вносить изменения в настройки тоже не могу wink

Вывод запроса:
show variables like'character%';
   
character_set_client    utf8   
character_set_connection    latin1   
character_set_database    latin1   
character_set_results    utf8   
character_set_server    latin1   
character_set_system    utf8   
character_sets_dir    /usr/share/mysql/charsets/

Решение:
Проблему решил следующим образом
1. В PhpMyAdmin открыл главную страницу и выбрал
"Сопоставление соединения с MySQL" = cp1251_bin

После этого в выводе запроса show variables like'character%' изменилась одна строка:

character_set_connection    cp1251
2. При создании таблиц нужно обязательно (!!!) указывать сравнение = cp1251_bin (это для виндозной кодировки, для юниховой - kio8r_bin, но оно должно соответствовать тому, что поставили в п. 1), т.к. по умолчанию создается сравнение по настройкам сервера (в нашем случае явно не русское ;( )

3. Сразу после коннекта к БД в скриптах php нужно выполнить команду 'set names cp1251' (ну или ... koi8r). Обычно коннект к базе выполняется один раз в функции вида
function connect_db(){
  $conn = @mysql_connect("localhost", "user1", "password1");
  if($conn){
    if(mysql_select_db("my_db") and mysql_query("set names 'cp1251'", $conn))
       return $conn;
    else return false;
  } else return false;
}
Так что и изменение нужно внести один раз в данную фукнцию, а затем вызывать ее где надо. Обычно вызов этой функции осуществляется один раз в начале выполнения главного скрипта (см. "модульное программирование" wink )

Мне этого хватило, но, можно еще добавить команду  mysql_query("set character set cp1251", $conn);

p.s. Кстати, если вы сохраняли данные в кодировке cp1251 можно их прочитать в koi8 (!!!) для этого нужно указать соответсвующие кодировки в скрипте подключения к БД, ну и в html конечно smile, правда в этом случае нужно чтобы и весть контент выводился в соответствующей кодировке. Эта удобно использовать если все тексты находятся в mysql.
Удачи!

Отредактировано wanderer (2006-11-26 10:54:29)

36

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

wanderer
Большое спасибо за развёрнутое описание решения проблемы кодировок. smile

Добавить могу только одно - при использовании запроса set names при подключении к БД, пользователь, которым вы подключаетесь, не должен иметь Grant привилегий. Иначе данная конструкция не сработает.

ВКонтакте Facebook Twitter

37

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Hanut пишет:

Hanut
При использовании запроса set names при подключении к БД, пользователь, которым вы подключаетесь, не должен иметь Grant привилегий. Иначе данная конструкция не сработает.

Был весьма удивлен этим замечанием. Пользователь, которым я логинюсь получил права именно через Grant. Это веб - юзер и админом быть не может по определению. Он имеет привилегии чтения всех таблиц БД и права на редактирование некоторых таблиц. Если конкретно, то может вставлять в таблицы логов, таблицы сообщений от посетителей и может вставлять, изменять и удалять в таблице учета сессий (сессии я храню в БД, чтобы любопытные ssh-юзеры не читали их в /tmp wink ).

И все. Все привилегии выдавались через гранты.

Все работает. Это что чудо? smile

Отредактировано wanderer (2006-11-26 22:25:07)

38

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

wanderer

Все работает. Это что чудо?

Нет, это скорее недопонимание. Склоняюсь к тому, что Hanut имел ввиду, по всей видимости, спецификацию привилегии GRANT, а ты - оператор GRANT. Разница между первым и вторым в том, что любые права доступа пользователям MySQL предоставляются с помощью оператора GRANT, а вот возможность присваивать права другим пользователям реализуется с помощью GRANT OPTION. Вот и все - It's not a miracle wink

http://dev.mysql.com/doc/refman/5.0/en/grant.html

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

39

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

wanderer
Проясню. Хотя Lokki уже всё расставил по местам, но хочу объяснить причину, почему именно на пользователя имеющего Grant привилегии или привилегии суперпользователя, не работает запрос set names. Например стандартный пользователь root, относится к пользователям имеющим привилегию Grant и если в БД произойдёт технический, либо любой иной сбой в кодировках, то root всегда сможет войти и всё исправить. К примеру он не будет видеть вопросики, вместо данных, которые будут видеть другие пользователи. Если бы у root'а работал set names, то сбой в кодировках сказался бы на отображении данных и для него, соответственно исправление могло бы оказаться осложнённым.

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

ВКонтакте Facebook Twitter

40

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Помогите пожалуйста !Проблема, вывожу сайт на хостинг выдает все знаками вопросов!Что делать обьясните токо по легче без всяких там профессиональных терминов!Стоит phpmyadmin 2.11 Debian!Заранее спасибо!Еще цифры и латинские буквы все норм выводятся!

41

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

g0nz
1) Укажите версию MySQL сервера.
2) Если осуществляется импорт дампа, то покажите структуру любой таблицы содержащей поле с кирилицей и то как кирилица выглядит, если нечитаема (крякозябы). Важно: используйте специализированный текстовый редактор, например, Notepad++.
3) В phpMyAdmin на хосте введите в окно выполнения SQL запроса нижеследующее и покажите результат:

SHOW GLOBAL VARIABLES LIKE 'char%';

4) Какой скрипт используется, уточните, если самописанный.
5) Еслть ли доступ к конфигурационным файлам MySQL и возможность их редактировать?
6) В какой кодировке страницы скрипта, собственно?

ВКонтакте Facebook Twitter

42

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

phpMyAdmin - 2.9.1.1-Debian-6
Версия MySQL-клиента: 5.0.51a
Версия сервера: 5.0.51a-0.dotdeb.1-log

Сообщение добавлено Sun Sep  7 19:16:17 2008
Структура таблицы!
-- Структура таблицы `categories`
--

CREATE TABLE `categories` (
  `id` int(2) NOT NULL auto_increment,
  `title` varchar(255) NOT NULL default '',
  `meta_d` varchar(255) NOT NULL default '',
  `meta_k` varchar(255) NOT NULL default '',
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=23 ;

INSERT INTO `categories` VALUES (7, '????', '????', '????', '<p>? ???? ???? ?? ?????? ?? ????? ????????? ????????? ? ????????.</p>');

Отредактировано Hanut (2008-09-07 22:46:44)

43

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Я потом должен что сделать?После того как вывел структуру таблицы!

Отредактировано g0nz (2008-09-07 18:23:58)

44

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

g0nz
Этот дамп нельзя импортировать, так как в нем вся кирилица уже вопросиками. Необходимо сделать другой дамп. Посмотрите как выглядят данные кирилицей в phpMyAdmin на том сервере с которого сделан дамп.

ВКонтакте Facebook Twitter

45

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Короче то дамп который норм отображается то его скопировать и в эту таблицу сунуть вместо этого дампа(который с ?)!

46

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

g0nz пишет:

Короче то дамп который норм отображается то его скопировать и в эту таблицу сунуть вместо этого дампа(который с ?)!

Если это вопрос, то ничего копировать не надо, просто импортируйте нормальный дамп и все.

Обратите внимание на кодировку дампа в текстовом редакторе. Если там будет ANSI, то на странице импорта phpMyAdmin надо будет выбрать cp1251; если UTF-8, то utf8.

ВКонтакте Facebook Twitter

47

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

И это все!

48

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

Проблема почти исчезла не которые слова изображаются вот так -Просмотров !Как исправить?

49

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

g0nz
Ответьте на пункты с 3 по 6, выше.
Где вы видите такое отображение?
Так выглядит utf8 в cp1251. То есть utf8 у вас сохраняется как cp1251.

ВКонтакте Facebook Twitter

50

Re: Проблема с кодировкой: вместо русских букв отображаются ?????

4.Самописный
5.Имеется доступ!
6.cp1251
Ну вроде так!

Отредактировано g0nz (2008-09-09 20:15:49)