Re: Содержимое таблиц отображается кракозяброй.
mogred
Какой скрипт используете?
Страницы сайта в utf8?
Сделайте дамп с помощью phpMyAdmin и покажите структуру любой таблицы содержащей кириллицу и пример того, как выглядят крякозябы.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Настройка phpMyAdmin → Содержимое таблиц отображается кракозяброй.
mogred
Какой скрипт используете?
Страницы сайта в utf8?
Сделайте дамп с помощью phpMyAdmin и покажите структуру любой таблицы содержащей кириллицу и пример того, как выглядят крякозябы.
Страницы сайта в charset=iso-8859-1"
Стуктура
CREATE TABLE "jos_menu" (
"id" int(11) NOT NULL auto_increment,
"menutype" varchar(25) default NULL,
"name" varchar(100) default NULL,
"link" text,
"type" varchar(50) NOT NULL default '',
"published" tinyint(1) NOT NULL default '0',
"parent" int(11) unsigned NOT NULL default '0',
"componentid" int(11) unsigned NOT NULL default '0',
"sublevel" int(11) default '0',
"ordering" int(11) default '0',
"checked_out" int(11) unsigned NOT NULL default '0',
"checked_out_time" datetime NOT NULL default '0000-00-00 00:00:00',
"pollid" int(11) NOT NULL default '0',
"browserNav" tinyint(4) default '0',
"access" tinyint(3) unsigned NOT NULL default '0',
"utaccess" tinyint(3) unsigned NOT NULL default '0',
"params" text NOT NULL,
PRIMARY KEY ("id"),
KEY "componentid" ("componentid","menutype","published","access"),
KEY "menutype" ("menutype")
) AUTO_INCREMENT=178 ;
Кракозябры такие: 'Главная '.
Какой я скрипт использую для получения дампа? Пробовал и phpMyAdmin и SypexDumperLite.
Меня очень смущает путаница в настройках сервера: половина кодировок cp1251, а половина в utf8.
character set client utf8
(Global value) cp1251
character set connection utf8
(Global value) cp1251
character set database cp1251
character set filesystem binary
character set results utf8
(Global value) cp1251
character set server cp1251
character set system utf8
collation connection utf8_general_ci
(Global value) cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci
Это нормально? Если нет, то как это можно изменить?
mogred
Под скриптом я имел в виду - какой используется на сайте. Возможно в конфигурации скрипта есть возможность установить кодировку соединения с MySQL. Там надо поставить utf8. Если такой настройки нет, то следует искать вызов функции соединения, например, mysql_connect(), и сразу после нее вставить строку:
mysql_query('SET NAMES utf8');
Судя по крякозябам страницы сайта у вас в utf8, а судя по character set connection (Global value) cp1251 - кодировка соединения с MySQL, cp1251. Поэтому данные в utf8 ложатся в таблицы в виде cp1251.
Дамп можно попробовать перекодировать, но для этого сделайте его с помощью phpMyAdmin и покажите структуру любой таблицы. У той, что выше, нет параметра кодировки.
CREATE TABLE `jos_content` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=72 /*!40101 DEFAULT CHARSET=utf8 */;
Эта таблица подойдет?
mogred
С кодировкой таблицы, ясно. Вырежите из дампа и вышлите одну строку крякозябов в файле на hanut@php-myadmin.ru , попробую перекодировать. Если получится, то объясню как это сделать.
Только имейте в виду, что перекодировка дампа имеет смысл только при установке кодировки соединения с MySQL в utf8.
Здравствуйте,
подскажите, пожалуйста, как правильней сделать
дамп и переконвертировать данные базы в UTF-8.
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/
в самой базе сравнение всех таблиц с utf8_general_ci
внизу про соединение: latin1_swedish_ci
В браузере клиентов - windows-1251
Хостинг доступа к my.cfn не дает, но говорит, что
при задании соединения с базой в наших скриптах в кодировке utf-8 проблем не будет.
career
Если скрипты ваши, то сразу после функции mysql_connect() пропишите строку:
mysql_query('SET NAMES utf8');
Если скрипты сторонние, то смотрите документацию скрипта, ищите директиву устанавливающую кодировку соединения с MySQL.
Откройте дамп и посмотрите как там выглядит кириллица. Если видны крякозябы, то покажите структуру любой таблицы содержащей кириллицу и пример крякозябов. Это необходимо для переконвертации, если она понадобится, конечно.
Про браузер я не понял. Страницы скрипта в браузере в какой кодировке выводятся? Проверьте внимательнее, utf-8 или windows-1251.
career
Если скрипты ваши, то сразу после функции mysql_connect() пропишите строку:mysql_query('SET NAMES utf8');
Если скрипты сторонние, то смотрите документацию скрипта, ищите директиву устанавливающую кодировку соединения с MySQL.
Откройте дамп и посмотрите как там выглядит кириллица. Если видны крякозябы, то покажите структуру любой таблицы содержащей кириллицу и пример крякозябов. Это необходимо для переконвертации, если она понадобится, конечно.
Про браузер я не понял. Страницы скрипта в браузере в какой кодировке выводятся? Проверьте внимательнее, utf-8 или windows-1251.
Сейчас: страницы выводятся в 1251, далее в таблицу базы (там сравнение utf8_general_ci), при этом кодировка соединения с базой latin1
После перекодировки дампа и обновления самого скрипта (форума VB) должно быть: страницы в utf8, далее в таблицу базы (utf8_general_ci), при этом кодировка соединения с базой utf8
career
Отредактируйте конфигурационный файл VB:
$config['Database']['dbtype'] = 'mysqli';
$config['Mysqli']['charset'] = 'utf8';
Толк от этих изменений будет только после перекодировки дампа. Вышлите на hanut@php-myadmin.ru небольшой кусок дампа содержащий структуру любой таблицы и то, как выглядит кириллица. Если в БД есть таблицы с разными кодировками, то пришлите весь дамп сжав его в zip архив, попробую перекодировать.
career
Отредактируйте конфигурационный файл VB:
$config['Database']['dbtype'] = 'mysqli';
$config['Mysqli']['charset'] = 'utf8';Толк от этих изменений будет только после перекодировки дампа. Вышлите на hanut@php-myadmin.ru небольшой кусок дампа содержащий структуру любой таблицы и то, как выглядит кириллица. Если в БД есть таблицы с разными кодировками, то пришлите весь дамп сжав его в zip архив, попробую перекодировать.
Спасибо. Скоро сделаю и сразу вышлю.
отправил сейчас,
дампер Sypex.
Установка кодировки соединения с базой в дампере была в авто, он выставил UTF.
(странно, должен ведь был latin1 ?)
уже неделю бьюсь ПОМОГИТЕ пожалуйста
в ощих чертах о проблеме
стоит joomla все настройки utf8
сервер настроен utf8
все нормально работает
установил новый компонент и началась пляска с работой этого копмонента
1/ при вводе данных в админке joomla в таблицах все отображается корректно utf8
но на сайте почемуто этот компонент выводит данные уже в cp1251 (т.е. в вопросиках ??????)
2/ при попытке ввести данные через форму компонента на самом сайте - все нормально utf8
но в таблицах и соответственно в админке joomla уже cp1251 (в кракозябринах )
пробовал менять параметры в my.cnf устанавливал utf8
default-character-set=utf8
помогло но только на локальном хостинге
а в реале доступ к этому файлу запрещен
как решить проблему????
вот мои настройки
может кто свежим взглядом посмотрит и скажет чего я не учел?!
заранее спасибо
SHOW VARIABLES LIKE 'character%'
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server cp1251
character_set_system utf8
character_sets_dir /usr/local/share/mysql/charsets/
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 /usr/local/share/mysql/charsets/
дамп стоит utf8 все данные записаны в таблицах в формате utf8
ENGINE=MyISAM DEFAULT CHARSET=utf8;
заливаю дамп в phpmyadmin везде стоят настройки utf8
на все таблицы поставлено сравнение utf8_general_ci (в разделе операции в окне сравнения стоит utf8_general_ci)
GrAVer
Посмотрите настройки скрипта, там должна быть директива управляющая кодировкой соединения с MySQL. Очевидно, что в Joomla она стоит в utf8, но устанавливаемый вами компонент, вероятно, имеет свою функцию подключения к MySQL и не берет настройки Joomla, а оставляет изначальную кодировку соединения, которая у вас cp1251.
Если сам модуль не поддается конфигурированию или у него нет директивы устанавливающей кодировку соединения с MySQL, то можно попробовать самому поправить скрипт, для чего поищите в файлах функцию mysql_connect и сразу после нее добавьте строку:
mysql_query('SET NAMES utf8');
Здравствуйте, помогите мне пожалуйста с крякозябрами. У меня в базе в PhpMyAdmin и на самом сайте вместо кирилицы отображаются знаки вопроса. После ввода
SHOW GLOBAL VARIABLES LIKE 'char%'
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Я так понял latin1 надо поменять на ut8 чтоб кирилица корректно отображалась, но как ето сделать? Версия phpMyAdmin 2.6.4-pl2 , версия Mysql 4.1.22-standard-log
Заранее огромное спасибо.
tymakr
Если в phpMyAdmin вопросики, то надо перекодировать импортированный дамп.
С кодировкой соединения все ясно. Необходимо еще уточнить кодировку страниц сайта (вероятно utf-8) и покажите структуру любой таблицы из дампа и пример того, как выглядит кириллица в дампе. Для открытия файла дампа используйте Notepad++.
tymakr
Если в phpMyAdmin вопросики, то надо перекодировать импортированный дамп.
С кодировкой соединения все ясно. Необходимо еще уточнить кодировку страниц сайта (вероятно utf-8) и покажите структуру любой таблицы из дампа и пример того, как выглядит кириллица в дампе. Для открытия файла дампа используйте Notepad++.
Теперь в PhpMyAdmin появились даже крякозябры
ВОт мой дамп:
CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment...
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=110 DEFAULT CHARSET=latin1 AUTO_INCREMENT=110 ;
--
-- Дамп данных таблицы `users`
--
INSERT INTO `users` VALUES (109, '?’?°???? ????????????'...);
2 строка с низу: там вместо крякозыбр должны быть Имя, Фамилия, Город и тп.
Странно, информация о пользователях на сайте отлично отображается кирилицей, в MySQL крякозябрами.
А вот любая другая информация на сайте оттображается как знаки вопроса, в MySQL также знаки вопроса.
Пример:
-- Структура таблицы `news`
--
CREATE TABLE `news` (
`id` int(11) NOT NULL auto_increment...
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=48 DEFAULT CHARSET=latin1 AUTO_INCREMENT=48 ;
--
-- Дамп данных таблицы `news`
--
INSERT INTO `news` VALUES (1, 1, '??????? ??????? ?????', '', '??????? ??????????? ??? ????');
Последняя строка дожна выводится кирилицей.
tymakr
Вопросики это из дампа? Крякозябы, как я понимаю из дампа, а откуда вопросики?
Всё из дампа, просто крякозябры из одной таблицы, а вопросики из другой.
Вот немного пошаманил методом "научного тыка"
Теперь если я сделаю какую нить запись на сайте, то на сайте она отображается отлично, а в базе она будет отображаться крякозябрами.
НО если я сделаю ету запись из под базы данных то и на сайте и в базе данных она будет отображаться вопросиками...
Что делать?
tymakr
Дело в том, что из вопросиков вернуть данные нельзя. У вас остались исходные таблицы с которых сделан дамп? Хорошо бы посмотреть как там данные отображаются.
НО если я сделаю ету запись из под базы данных то и на сайте и в базе данных она будет отображаться вопросиками...
Если в phpMyAdmin ввести кириллицу, то в самом phpMyAdmin будут отображаться вопросики? Такого быть не должно никак.
У вас есть доступ к конфигурационному файлу MySQL (my.ini/my.cnf)? Что это за скрипт: коммерческий, или самодельный?
Да, в самом phpMyAdmin отображаються вопросики. Доступа к my.ini/my.cnf нет. Скрипт самодельный но делал не я.
Сообщение добавлено Sun Apr 26 11:50:15 2009
В дампе вконце каждой таблицы есть
DEFAULT CHARSET=latin1
а если latin1 поменять на utf8 во всем дампе ето чтото изменит?
а если latin1 поменять на utf8 во всем дампе ето чтото изменит?
Само по себе не изменит. Здесь требуется выполнить две вещи: перекодировать крякозябы вернув кириллицу; установить кодировку соединения с MySQL в utf8. Это взаимосвязанные задачи.
Если вопросики - значит кириллицу не вернуть. Но вопросики не могли появиться при работе скрипта, только при неверной попытке импорта.
Будете пробовать перекодировать данные в тех таблицах, где крякозябы?
Установка кодировки соединения с MySQL делается так:
1) Делаем поиск по всем файлам скрипта, ищем вызов функции mysql_connect.
2) Сразу после этой функции добавляем строку:
mysql_query('SET NAMES utf8');
Будете пробовать перекодировать данные в тех таблицах, где крякозябы?
Скажыте, как перекодировать ети таблицы?
Форум PHP-MyAdmin.RU → Настройка phpMyAdmin → Содержимое таблиц отображается кракозяброй.
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.