1

Тема: Все про ту же кодировку

Друзья, выручайте, температура кипения мозга на пределе!

При переезде на другой хост не правельно работает база данных. Тобишь, в phpMyAdmin все отображается по русски, а скрипт исполняет на сайте вместо букв знаки вопроса! В чем борода?

Старый хост:
Версия сервера: 4.1.22-standard
Сервер: Localhost via UNIX socket
Версия MySQL-клиента: 4.1.22

Новый хост:
Версия сервера: 5.0.45
Сервер: Localhost via UNIX socket
Версия MySQL-клиента: 5.0.45

2

Re: Все про ту же кодировку

lopster
Если есть доступ к конфигурационному файлу MySQL, попробуйте в раздел [mysqld] добавить init-connect="SET NAMES кодировка".
Если доступа нет, то добавьте выполнение запроса "SET NAMES кодировка" сразу после функции подключения.
MySQL 4.1+ и любые проблемы с русскими буквами

3

Re: Все про ту же кодировку

Hanut сказал:

lopster
Если есть доступ к конфигурационному файлу MySQL, попробуйте в раздел [mysqld] добавить init-connect="SET NAMES кодировка".
Если доступа нет, то добавьте выполнение запроса "SET NAMES кодировка" сразу после функции подключения.
MySQL 4.1+ и любые проблемы с русскими буквами

Спасибо за ответ, но я честно говоря не совсем понял куда добавить "SET NAMES кодировка"!? Стоит phpBB + TorrentPier!

4

Re: Все про ту же кодировку

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

Покажите значения возвращаемые запросом:
show variables like 'character%';

Сделайте дамп любой таблицы содержащей кирилицу и покажите структуру и строку с данными.

5

Re: Все про ту же кодировку

Hanut сказал:

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

Покажите значения возвращаемые запросом:
show variables like 'character%';

Сделайте дамп любой таблицы содержащей кирилицу и покажите структуру и строку с данными.

Получилось вот что:

Variable_name                 Value 
character_set_client                    utf8
character_set_connection            utf8
character_set_database              cp1251
character_set_filesystem            binary
character_set_results                 utf8
character_set_server                 latin1
character_set_system                utf8
character_sets_dir                     /usr/share/mysql/charsets/

6

Re: Все про ту же кодировку

lopster
Мне надо знать в каком состоянии находятся данные, для чего необходим вышеупомянутый кусок дампа. Делается он на странице экспорта.

7

Re: Все про ту же кодировку

Hanut сказал:

lopster
Мне надо знать в каком состоянии находятся данные, для чего необходим вышеупомянутый кусок дампа. Делается он на странице экспорта.

Если я тебя правельно понял, то тебя интересует вот этот кусок:

-- phpMyAdmin SQL Dump
-- version 2.11.0
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Дек 23 2007 г., 20:39
-- Версия сервера: 5.0.45
-- Версия PHP: 4.4.7
--
-- show variables like 'character%';
--

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `lopster_testtor`
--

-- --------------------------------------------------------

--
-- Структура таблицы `phpbb_vote_results`
--

CREATE TABLE `phpbb_vote_results` (
  `vote_id` mediumint(8) unsigned NOT NULL default '0',
  `vote_option_id` tinyint(4) unsigned NOT NULL default '0',
  `vote_option_text` varchar(255) collate cp1251_general_cs NOT NULL default '',
  `vote_result` int(11) NOT NULL default '0',
  KEY `vote_option_id` (`vote_option_id`),
  KEY `vote_id` (`vote_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs;

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

INSERT INTO `phpbb_vote_results` (`vote_id`, `vote_option_id`, `vote_option_text`, `vote_result`) VALUES
(3, 3, 'Плохо!', 0),
(3, 2, 'Так себе!', 0),
(3, 1, 'Отлично!', 2),
(2, 2, 'Нет', 3),
(2, 1, 'Да', 3),
(4, 1, 'Да, очень нравиться!', 1),
(4, 2, 'Ну так, более менее!', 1),
(4, 3, 'Так себе!', 0),
(4, 4, 'Нет, больше сюда не зайду!', 0),
(6, 1, 'да', 3),
(6, 2, 'нет', 1);

8

Re: Все про ту же кодировку

lopster
С данными у вас нет никаких проблем, а с настройками сервера придется разбираться. Обратитесь к хостеру за поддержкой. Можно либо изменить настройки сервера, либо попытаться разобраться с функцией подключения форума phpBB, добавив запрос SET NAMES. Попробуйте поискать помощи, также у пользователей phpBB, возможно у них есть решение, так как ваша проблема к phpMyAdmin прямого отношения не имеет, а с форумом я помочь не могу.

9

Re: Все про ту же кодировку

Hanut сказал:

lopster
С данными у вас нет никаких проблем, а с настройками сервера придется разбираться. Обратитесь к хостеру за поддержкой. Можно либо изменить настройки сервера, либо попытаться разобраться с функцией подключения форума phpBB, добавив запрос SET NAMES. Попробуйте поискать помощи, также у пользователей phpBB, возможно у них есть решение, так как ваша проблема к phpMyAdmin прямого отношения не имеет, а с форумом я помочь не могу.

Ладно, спасибо за помощь! Буду разбираться! Скорее всего дело в настройках сервака, так как на старом хостинге все работало прекрасно!

10 (изменено: DizeL, 2008-01-25 22:56:07)

Re: Все про ту же кодировку

Привет всем! Продолжу данную тему:

Система WinXp, Apache 2.2.8(сервисом), MySql 4.1.22(сервисом), Php 4.4.7. Вот часть my.ini:

[client]
port=3306
character_sets-dir=C:/PROGRA~1/MYSQL/MYSQLS~1.1/SHARE/CHARSETS/
init-connect="SET NAMES cp1251"
init-connect="SET CHARACTER SET cp1251"
init-connect="SET CHARSET cp1251"
default-collation=cp1251_general_ci
default-character-set=cp1251

[mysql]
character_sets-dir=C:/PROGRA~1/MYSQL/MYSQLS~1.1/SHARE/CHARSETS/
init-connect="SET NAMES cp1251"
init-connect="SET CHARACTER SET cp1251"
default-collation=cp1251_general_ci
default-character-set=cp1251

[mysqld]
port=3306
character_sets-dir=C:/PROGRA~1/MYSQL/MYSQLS~1.1/SHARE/CHARSETS/
init-connect="SET NAMES cp1251"
init-connect="SET CHARACTER SET cp1251"
character_set_client=cp1251
character_set_server=cp1251
collation_server=cp1251_general_ci
default-collation=cp1251_general_ci
skip-character-set-client-handshake
...
default-character-set=cp1251

Запускаю Mysql-Administrator и смотрю список переменных или делаю запрос из Mysql Query Browser:

character_set_client         utf8
character_set_connection      utf8
character_set_database        cp1251
character_set_results            utf8
character_set_server             cp1251
character_set_system             utf8
collation_connection              utf8_general_ci
collation_database                cp1251_general_ci
collation_server                   cp1251_general_ci

(Если в Mysql Query Browser в запросе добавляю SET NAMES cp1251, то ничего не меняется! character_set_connection utf8 и character_set_results utf8)


Теперь запускаю Mysql Control Center, делаю запрос Show variables

character_set_client         cp1251
character_set_connection      cp1251
character_set_database        cp1251
character_set_results           cp1251
character_set_server            cp1251
character_set_system           utf8
collation_connection             cp1251_general_ci
collation_database               cp1251_general_ci
collation_server                  cp1251_general_ci

Обьясните где подвох? Перечитал все, что можно было sad

11

Re: Все про ту же кодировку

DizeL
В обоих случаях подключались под root?

12

Re: Все про ту же кодировку

И чере Root и через простого Юзера!

13

Re: Все про ту же кодировку

DizeL
Значит Mysql Query Browser игнорирует установленную кодировку соединения и всегда использует utf8.

14

Re: Все про ту же кодировку

Hanut сказал:

DizeL
Значит Mysql Query Browser игнорирует установленную кодировку соединения и всегда использует utf8.

Скорей всего так, потому как в phpMyAdmin все ОК! Имхо phpMyAdmin-BEST!