Страница 1 из 1
Проблема отображения сайта
Добавлено: 2006-06-07 22:47:19
zorg
Добрый день!
Не подскажете где нарыть ошибку:
на сайте отображается вместо русских букв одни знаки вопроса.
Понимаю что проблемы с кодировкой, но в каком месте????
Сами данные которые вопросами хранятся в БД MYSQL.
Заливал их туда по разному и из под системы и через phpmyadmin. В phpmyadmin они читаются нормально.

Добавлено: 2006-06-07 22:59:10
Alex Keda
первой командой, сразу после установления соединения дай:
только кодировку свою подставь....
====
надо дамп конвертить в дефолтовый формат БД - отдампь БД у себя через phpMyAdmin в формате 16-ричных кодов, или ,если не прокатит, в формате MySQL 4.0 и пробуй...
Добавлено: 2006-06-08 8:54:15
zorg
Я думаю что проблемы в том что:
Когда за хожу в phpmyadmin то у меня показывает:
А также:
Код: Выделить всё
character set client utf8
(Глобальное значение) cp1251
character set connection cp1251
character set database cp1251
character set results utf8
(Глобальное значение) cp1251
character set server cp1251
character set system utf8
character sets dir /usr/local/share/mysql/charsets/
collation connection cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci
concurrent insert cp1251_general_ci
А для той базы данных всё cp1251
Хотя когда захожу рутом в мускуль, то по команде status даёт:
Код: Выделить всё
--------------
mysql Ver 14.7 Distrib 4.1.18, for portbld-freebsd4.11 (i386) using readline 5.1
Connection id: 69
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: more
Using outfile: ''
Using delimiter: ;
Server version: 4.1.18-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: cp1251
Db characterset: cp1251
Client characterset: cp1251
Conn. characterset: cp1251
UNIX socket: /tmp/mysql.sock
Uptime: 10 hours 38 min 42 sec
Threads: 1 Questions: 9741 Slow queries: 0 Opens: 375 Flush tables: 1 Open tables: 105 Queries per second avg: 0.254
--------------
Вообщем если моё предположение верно, не подскажете как сменить MySQL-кодировка: UTF-8 Unicode (utf8) на cp1251 ????? Или тока пересобирать mysql?? Если пересобирать, то правильно ли я понимаю, что нужно будет пересобирать тогда и Апач с PHP ?????

Добавлено: 2006-06-08 13:30:02
Alex Keda
тока mysql.
Добавлено: 2006-06-08 21:11:08
zorg
Вообщем попробовал в конфиге сайта вариант который ты мне писал первый раз, прокатило, вопросы исчезли, но всё равно попробую пересобрать с друго кодировкой, чтобы убедиться!

Добавлено: 2006-06-09 10:17:18
Alex Keda
zorg писал(а):Вообщем попробовал в конфиге сайта вариант который ты мне писал первый раз, прокатило, вопросы исчезли, но всё равно попробую пересобрать с друго кодировкой, чтобы убедиться!

нет. не прокатило.
если есть на сайте возможность добавлять что-то в БД (комменты и пр.) то у тебя свежедобавленное будет в виде вопросов...
Добавлено: 2006-06-09 14:15:17
zorg
А это у них на сайте есть параметры соединения с базой MYSQL. В них и добавил кодировку. НО возможно ты и прав. Всё равно сервак испытательный, а потом уже заведу на постоянку дам пароли и пусть сами парятся. Непонравиться пусть хостяться на старом местеи ждут когда сайт загрузиться по минуте и больше!

Re: Проблема отображения сайта
Добавлено: 2009-06-16 21:37:47
risk94
подобная ситуация. просветления не пришло. в базе вижу нормально, на сайте часть - ввиде "?" подскажите что проверить и как должно быть.
Код: Выделить всё
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/
collation_connection cp1251_general_ci
collation_database cp1251_bin
collation_server cp1251_bin
пример дампа
Код: Выделить всё
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES cp1251 */; -- -- База данных: `visageha_visage`
--
DROP DATABASE `visageha_visage`;
CREATE DATABASE `visageha_visage` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
USE `visagekha_visage`;
-- --------------------------------------------------------
--
-- Структура таблицы `configuration`
--
CREATE TABLE IF NOT EXISTS `configuration` (
`id` int(11) NOT NULL,
`name` varchar(30) NOT NULL,
`value` varchar(255) DEFAULT NULL,
`variable_name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `configuration`
--
INSERT INTO `configuration` (`id`, `name`, `value`, `variable_name`) VALUES
(1, 'Дата обновления цен', '19.04.2009', 'LAST_UPDATE_PRICES'),
(2, 'Курс доллара', '7', 'DOLLAR_RATE');
Re: Проблема отображения сайта
Добавлено: 2009-06-17 10:50:15
server801
а вообще не все сайты работают правильно с кодировкой.есть такой двиг PHP-Fusion -то пока не изменишь параметры в самом maincore.php -то работать не будет.была такая трабла недавно.хотя на локалхосте на виндовом апаче все работает прекрасно.
пример для него
1
В phpMyAdmin->Operations установите Collation в cp1251_general_ci и GO При этом выполнится SQL примерно такого содержания:
Код: Выделить всё
ALTER DATABASE `имя_базы` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
2
файле maincore.php найдем функцию
Код: Выделить всё
function dbconnect($db_host, $db_user, $db_pass, $db_name) {
...
}
заменим все на
Код: Выделить всё
function dbconnect($db_host, $db_user, $db_pass, $db_name) {
$db_connect = @mysql_connect($db_host, $db_user, $db_pass);
$db_select = @mysql_select_db($db_name);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
if (!$db_connect) {
die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to establish connection to MySQL</b><br>".mysql_errno()." : ".mysql_error()."</div>");
} elseif (!$db_select) {
die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to select MySQL database</b><br>".mysql_errno()." : ".mysql_error()."</div>");
}
}
вобщем гугель ответил мне тогда