Тема: В phpmyadmin текст отображается нормально, а на сайте в виде ?????????
В phpmyadmin текст отображается нормально, а на сайте в виде ?????????
В чем ошибка.
P.S. это после переезда на другой хостинг
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → В phpmyadmin текст отображается нормально, а на сайте в виде ?????????
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
В phpmyadmin текст отображается нормально, а на сайте в виде ?????????
В чем ошибка.
P.S. это после переезда на другой хостинг
Такая же проблемы была. После соединения с БД пропиши вот это
mysql_query("SET NAMES CP1251");
мне помогло
где прописать?
darklight
В phpMyAdmin выполните запрос:
SHOW GLOBAL VARIABLES LIKE 'char%';
Покажите его вывод.
Укажите в какой кодировке страницы сайта и в какой кодировке созданы таблицы в БД.
Какой скрипт используете?
В 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
Описание установки кодировки соединения с MySQL здесь (3 пункт в ошибках): http://www.fairground.ru/item14/
файл _shell/functions/functions.php и раскомментируем строчку №103
//mysql_query('SET NAMES cp1251');
Он будет работать только если сайт и таблицы в БД имеют кодировку windows-1251 (cp1251).
спасибо, все заработало:)
Здравствуйте, у меня такая же проблема.
Кодировка базы 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. Где это можно изменить?
Как переделать, уже сделанные записи в базе из такого ?”?µ???‚???µ?????????? ?? в нормальный вид?
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++).
вот дамп
[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]
А если поменять настройки соединения, не меняя кодировку базы, тогда на сайте крякозябры вылезут?
А если поменять настройки соединения, не меняя кодировку базы, тогда на сайте крякозябры вылезут?
Да, вылезут.
К сожалению не знаю как перекодировать такие крякозябы. Получаются битые символы.
pahhan сказал:А если поменять настройки соединения, не меняя кодировку базы, тогда на сайте крякозябры вылезут?
Да, вылезут.
К сожалению не знаю как перекодировать такие крякозябы. Получаются битые символы.
--------
Ну Hanut ты молодчина!
Я неделю бился с тем же самым, перекопал весь инет, создавал-пересоздвал все возможные кодировки на сервере и дампе-ничего не помогло,
а ты предложил 2 конкретных способа исправления ситуации (2), и все заработало, даже зарегистировался по этому поводу
Громадный респект!
-------
Насчет того, можно ли конвертнуть эту абракадабру ?????????·???? ?•?????µ?????? ?????????‚?°???‚???????????‡', '', 1);
в нормальный вид, да можно, у меня получилось.
Я использовал вот это
http://www.bitaweb.com/en/codeConverter.html
ради любопытства, что же мне все таки отдается в phpmyadmin.
Данные введеные заново-нормально светятся всюду, включая дамп,
а вот данные введенные до того как, действительно в абракадабре.
Но мне было проще, я просто боролся с новым хостингом и нулевой базой
--------
Правда в случае (pahhan), как то не совсем, может надо из оригинала вставлять..
Получается примерно вот это
1. UTF-8: Eight-bit Unicode (UCS) Transformation Format
Дегтиев??кий ??
-------
Хоть пост уже немоного устаревший, все равно я считаю очень познавательный.
Еще раз спасибо!
так как скрипты видели крякозябы как нормальный текст - я написал скрипт, который считал все из базы, потом вызвал команду mysql_query('SET NAMES utf8'); и записал все обратно, теперь все замечательно!
Сообщение добавлено Fri Apr 10 07:18:44 2009
а перекодировки не помогали, в итоге просто терялись некоторые символы
Здравствуйте!
Помогите пожалуйста.
Сегодня целый день бьюсь с этой базой- ничего не получается.
Проблема такая же. В базе отображается все нормально, но на сайте знаки вопроса. После запроса 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"
Я не понял первый способ
Данный способ требует доступ к конфигурационному файлу MySQL (my.cnf/my.ini). Если у вас виртуальный хостинг, то такого доступа, скорее всего, не будет. Конкретно можете узнать только у хостера.
Думаю вам было бы проще сделать по другому. Поиском по файлам скрипта найдите все вхождения mysql_connect и сразу после данной функции пропишите строку:
mysql_query('SET NAMES cp1251');
Проследите, чтобы в базе данных через phpMyAdmin была видна кириллица и таблицы имели сравнение cp1251_general_ci. Нельзя, чтобы они были latin1.
Я просто готов прыгать от радости!!!!!!!!!!!
Спасибо большое!
Вчера целый день сидел, до часа ночи, все перепробовал, ничего не помогало.
Помогло вот это сразу: после mysql_connect прописал строку
mysql_query('SET NAMES cp1251');
Спасибо еще раз- Вы настоящий профи:D
Hanut
Пусть скажут, что я некропостер, но если ты еще здесь - огромное спасибо. Так легко и просто разрешилась проблема, об которую я чуть голову не сломал.
andpr99
Пожалуйста. Рад, что смог быть полезен.
Здравствуйте у меня другая проблема при написании сообщения на сайте русскими буквами в базу данных они записываются нормально а на сайте ничего нет пусто латинские выводятся без проблем
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
подскажите пожалуйста как исправить?
подскажите пожалуйста как исправить?
Поиском по файлам скрипта найдите все вхождения mysql_connect и сразу после данной функции пропишите строку:
mysql_query('SET NAMES cp1251');
Такое вхождение есть в единственном файле конфига и там уже есть такая строка.
Интересно то что на сайте нормально отображаются слова которые в базе данных прописаны в ячейках varchar
а в ячейках со значением text русские буквы на сайте не отображаются.
Вот сайт in-payeer.ml посмотрите форум там есть сообщения но их не видно
в ячейках со значением text русские буквы на сайте не отображаются.
Проверьте как данные выглядят в phpMyAdmin. Если они там тоже будут нечитаемы, то проблема в этом.
В phpMyAdmin все сообщения во всех ячейках читаемы а на сайте текст который находится в ячейках text не отображаются
В phpMyAdmin все сообщения во всех ячейках читаемы а на сайте текст который находится в ячейках text не отображаются
Надо опускаться по коду, пока не будет найдено где именно текст становится нечитаемым. При этом у форума функция подключения к базе данных должна быть своя.
Вот тут этот скрипт можно скачать wm-scripts.ru/files/2x-pro.wm-scripts.ru.zip вы бы не могли глянуть его тех поддержка у них просто отвечает раз в год.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → В phpmyadmin текст отображается нормально, а на сайте в виде ?????????
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.