1

Тема: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

В phpmyadmin текст отображается нормально, а на сайте в виде ?????????
В чем ошибка.
P.S. это после переезда на другой хостинг

2

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Такая же проблемы была. После соединения с БД пропиши вот это
mysql_query("SET NAMES CP1251");
мне помогло

3

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

где прописать?

4

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

darklight
В phpMyAdmin выполните запрос:

SHOW GLOBAL VARIABLES LIKE 'char%';

Покажите его вывод.
Укажите в какой кодировке страницы сайта и в какой кодировке созданы таблицы в БД.
Какой скрипт используете?

5

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Hanut сказал:

В phpMyAdmin выполните запрос:

SHOW GLOBAL VARIABLES LIKE 'char%';

Покажите его вывод.

character_set_client      utf8
character_set_connection     utf8
character_set_database     utf8
character_set_results     utf8
character_set_server     utf8
character_set_system     utf8
character_sets_dir     /usr/local/share/mysql/charsets/

Укажите в какой кодировке страницы сайта и в какой кодировке созданы таблицы в БД.

по-моему utf8

Какой скрипт используете?

FairLinks_1.64

6

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Описание установки кодировки соединения с MySQL здесь (3 пункт в ошибках): http://www.fairground.ru/item14/
файл _shell/functions/functions.php и раскомментируем строчку №103
//mysql_query('SET NAMES cp1251');

Он будет работать только если сайт и таблицы в БД имеют кодировку windows-1251 (cp1251).

7

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

спасибо, все заработало:)

8

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Здравствуйте, у меня такая же проблема.
Кодировка базы utf8_general_ci
Кодировка страниц сайта UTF-8
Добавляю запись через пхпадмин русскими буквами, на сайте отображаются ?????????
Добавляю запись скриптом на сайте, русские буквы в пхпадмин видны как ?”?µ???‚???µ?????????? ??, в то же время при считывании записей из базы скриптом, на сайт они выводятся в нормальном виде.

запрос
SHOW GLOBAL VARIABLES LIKE 'char%'

выдал
Variable_name                             Value
character_set_client                latin1
character_set_connection    latin1
character_set_database                latin1
character_set_filesystem                binary
character_set_results                latin1
character_set_server                latin1
character_set_system                utf8
character_sets_dir    /usr/local/share/mysql/charsets/



Как я понял везде должно стоять utf8. Где это можно изменить?
Как переделать, уже сделанные записи в базе из такого ?”?µ???‚???µ?????????? ?? в нормальный вид?

9

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

pahhan
Кодировка соединения с MySQL (character_set_connection) у вас latin1, поэтому данные в utf8 отображаются крякозябами.
Для установки кодировки соединения есть два способа - глобальный, при доступе к my.cnf; и локальный при котором надо править скрипт.

Первый случай:
В my.cnf, раздел [mysqld] необходимо прописать строку:

init-connect="SET NAMES utf8"

Также следует поправить данную директиву:

default-character-set=utf8

Второй случай:
Необходимо найти в скрипте место вызова функции mysql_connect() и сразу после нее добавить строку:

mysql_query('SET NAMES utf8');

Перекодировка задача не простая.
Сделайте дамп с помощью phpMyAdmin и покажите структуру любой таблицы содержащей поля с кириллицей (CREATE TABLE и далее) и то как выглядит кириллица, если вместо нее крякозябы. Дамп открывайте специализированным текстовым редактором (рекомендую Notepad++).

10

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

вот дамп

[mono]CREATE TABLE IF NOT EXISTS `client` (
  `id` int(11) NOT NULL auto_increment,
  `date` date NOT NULL,
  `name` varchar(150) NOT NULL,
  `phone` varchar(50) NOT NULL,
  `course_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=43 ;

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

INSERT INTO `client` (`id`, `date`, `name`, `phone`, `course_id`) VALUES
(37, '2009-02-14', '???°?·?°???????»?? ?”?°??????', '', 1),
(38, '2009-03-05', '?”?µ???‚???µ?????????? ???»?µ?????°?????? ?’?»?°?????????????????‡', '', 1),
(35, '2009-02-02', '?????????·???? ?•?????µ?????? ?????????‚?°???‚???????????‡', '', 1);

-- --------------------------------------------------------[/mono]

А если поменять настройки соединения, не меняя кодировку базы, тогда на сайте крякозябры вылезут?

11

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

pahhan сказал:

А если поменять настройки соединения, не меняя кодировку базы, тогда на сайте крякозябры вылезут?

Да, вылезут.

К сожалению не знаю как перекодировать такие крякозябы. Получаются битые символы.

12

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Hanut сказал:
pahhan сказал:

А если поменять настройки соединения, не меняя кодировку базы, тогда на сайте крякозябры вылезут?

Да, вылезут.

К сожалению не знаю как перекодировать такие крякозябы. Получаются битые символы.

--------
Ну Hanut ты молодчина!
Я неделю бился с тем же самым, перекопал весь инет, создавал-пересоздвал все возможные кодировки на сервере и дампе-ничего не помогло,
а ты предложил 2 конкретных способа исправления ситуации (2), и все заработало, даже зарегистировался по этому поводу smile

Громадный респект!
-------
Насчет того, можно ли конвертнуть эту абракадабру ?????????·???? ?•?????µ?????? ?????????‚?°???‚???????????‡', '', 1);
в нормальный вид, да можно, у меня получилось.

Я использовал вот  это

http://www.bitaweb.com/en/codeConverter.html

ради любопытства, что же мне все таки отдается в phpmyadmin.
Данные введеные заново-нормально светятся всюду, включая дамп,
а вот данные введенные до того как, действительно в абракадабре.
Но мне было проще, я просто боролся с новым хостингом и нулевой базой
--------

Правда в случае (pahhan), как то не совсем, может надо из оригинала вставлять..
Получается примерно вот это

1. UTF-8: Eight-bit Unicode (UCS) Transformation Format

Дегтиев??кий ??

-------

Хоть пост уже немоного устаревший, все равно я считаю очень познавательный.
Еще раз спасибо!

13

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

так как скрипты видели крякозябы как нормальный текст - я написал скрипт, который считал все из базы, потом вызвал команду mysql_query('SET NAMES utf8'); и записал все обратно, теперь все замечательно!

Сообщение добавлено Fri Apr 10 07:18:44 2009
а перекодировки не помогали, в итоге просто терялись некоторые символы

14

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Здравствуйте!
Помогите пожалуйста.
Сегодня целый день бьюсь с этой базой- ничего не получается.
Проблема такая же. В базе отображается все нормально, но на сайте знаки вопроса. После запроса SHOW GLOBAL VARIABLES LIKE 'char%';  выдало:
Variable_name    Value
character_set_client    latin1
character_set_connection    latin1
character_set_database    latin1
character_set_filesystem    binary
character_set_results    latin1
character_set_server    latin1
character_set_system    utf8
character_sets_dir    /usr/share/mysql/charsets/

Кодировку страниц пробовал делать и UTF и Cp-1251- не помогало.
Я не понял первый способ, пожалуйста объясните поподробнее, что значит
В my.cnf, раздел [mysqld] необходимо прописать строку:
init-connect="SET NAMES utf8"

15

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Aleks89 сказал:

Я не понял первый способ

Данный способ требует доступ к конфигурационному файлу MySQL (my.cnf/my.ini). Если у вас виртуальный хостинг, то такого доступа, скорее всего, не будет. Конкретно можете узнать только у хостера.

Думаю вам было бы проще сделать по другому. Поиском по файлам скрипта найдите все вхождения mysql_connect и сразу после данной функции пропишите строку:
mysql_query('SET NAMES cp1251');

Проследите, чтобы в базе данных через phpMyAdmin была видна кириллица и таблицы имели сравнение cp1251_general_ci. Нельзя, чтобы они были latin1.

16

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Я просто готов прыгать от радости!!!!!!!!!!!
Спасибо большое!
Вчера целый день сидел, до часа ночи, все перепробовал, ничего не помогало.
Помогло вот это сразу: после mysql_connect прописал строку
mysql_query('SET NAMES cp1251');
Спасибо еще раз- Вы настоящий профи:D

17

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Hanut
Пусть скажут, что я некропостер, но если ты еще здесь - огромное спасибо. Так легко и просто разрешилась проблема, об которую я чуть голову не сломал.

18

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

andpr99
Пожалуйста. Рад, что смог быть полезен. smile

19 (изменено: himik, 2015-10-04 16:33:18)

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Здравствуйте у меня другая проблема при написании сообщения на сайте русскими буквами в базу данных они записываются нормально а на сайте ничего нет пусто латинские выводятся без проблем

Variable_name     Value    
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     /usr/share/mysql/charsets/

вот это выдало по запросу
кодировка базы в cp1251_general_ci
кодировка файлов в нотепаде показывает ANSI
скрипт 2x-pro.wm-scripts.ru
подскажите пожалуйста как исправить?

20

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

himik сказал:

подскажите пожалуйста как исправить?

Поиском по файлам скрипта найдите все вхождения mysql_connect и сразу после данной функции пропишите строку:
mysql_query('SET NAMES cp1251');

21

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Такое вхождение есть в единственном файле конфига и там уже есть такая строка.
Интересно то что на сайте нормально отображаются слова которые в базе данных прописаны в ячейках varchar
а в ячейках со значением text русские буквы на сайте не отображаются.
Вот сайт in-payeer.ml посмотрите форум там есть сообщения но их не видно

22

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

himik сказал:

в ячейках со значением text русские буквы на сайте не отображаются.

Проверьте как данные выглядят в phpMyAdmin. Если они там тоже будут нечитаемы, то проблема в этом.

23

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

В phpMyAdmin все сообщения во всех ячейках читаемы а на сайте текст который находится в ячейках text не отображаются

24

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

himik сказал:

В phpMyAdmin все сообщения во всех ячейках читаемы а на сайте текст который находится в ячейках text не отображаются

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

25 (изменено: himik, 2015-10-05 18:06:33)

Re: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????

Вот тут этот скрипт можно скачать wm-scripts.ru/files/2x-pro.wm-scripts.ru.zip вы бы не могли глянуть его тех поддержка у них просто отвечает раз в год.