Страница 1 из 1

Проблема отображения сайта

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

Добавлено: 2006-06-07 22:59:10
Alex Keda
первой командой, сразу после установления соединения дай:

Код: Выделить всё

SET CHARSET cp1251
только кодировку свою подставь....
====
надо дамп конвертить в дефолтовый формат БД - отдампь БД у себя через phpMyAdmin в формате 16-ричных кодов, или ,если не прокатит, в формате MySQL 4.0 и пробуй...

Добавлено: 2006-06-08 8:54:15
zorg
Я думаю что проблемы в том что:
Когда за хожу в phpmyadmin то у меня показывает:

Код: Выделить всё

MySQL-кодировка: UTF-8 Unicode (utf8) 
А также:

Код: Выделить всё

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>");
}
}
вобщем гугель ответил мне тогда