Изменение кодировки базы данных с cp1251_general_ci на utf8

Автор Солярис, 02 октября 2016, 17:50:26

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Солярис

Приветствую!

Исходные данные:
1. Версия форума 2.1 обновленная с 1.1.21
2. База данных в кодировке cp1251_general_ci
3. Данные в базе есть как в кодировке cp1251_general_ci, так и в кодировке utf8.

Различные темы форума читал, но так до конца и не понял правильную последовательность действий по изменению кодировки форума с cp1251_general_ci на utf8.

Главное, чтобы потом ничего не форуме не отображалось знаками вопроса, квадратами и прочими не читаемыми знаками: ни темы форума, ни поясняющие надписи, ни интерфейс пользователя, модератора и админа.

Заранее спасибо за помощь.

kak2z

1. в пхпМуАдмин запускаете такой запрос
SELECT CONCAT(  'ALTER TABLE `', t.`TABLE_SCHEMA` ,  '`.`', t.`TABLE_NAME` ,  '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) AS sqlcode
FROM  `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` =  'My_DB_for_convert'
ORDER BY 1
LIMIT 0 , 90
где My_DB_for_convert это название Вашей базы..

2. пхпМуАдмин выдает кучу строк-запросов.. их аккуратно копируете, вставляете в какой то там блокнот, и штук по 10 выполняете в том же пхпМуАдмин - это для того что бы не включить выполнение всех сразу запросов - может истечь время жизни запроса и тогда не все таблицы обработаются

3. Дальше грузите в админке форума русский язык ЮТФ 8..

По идее все должно работать.. 
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис

Данный код выполняется и ничего не происходит. Или я что-то не так делаю.

Сообщение: Данное выделение не содержит уникального столбца. Изменение сетки, выставление галочки, редактирование, копирование и удаление невозможно.

+++++++++++++++++++++

По-моему, я понял. В результате выполнения этого кода выдается список из соответствующих запросов к базе.
Каждый из этих запросов надо выполнить отдельно, скопировав их.

kak2z

Цитата: Солярис от 02 октября 2016, 18:02:51По-моему, я понял. В результате выполнения этого кода выдается список из соответствующих запросов к базе.
Каждый из этих запросов надо выполнить отдельно, скопировав их.
да.. все правильно.. только по одному это слишком долго.. можно штук по 10 брать и запускать..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис


kak2z

Цитата: Солярис от 02 октября 2016, 19:21:54По несколько пробовал и не проходит.
как не проходит?? какую ошибку выдает?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис

Может я чего не понимаю, но при выполнении нескольких команд сразу иной раз выдается, что было задействовано ноль строк.

+++++++++++++++

Кстати, полная перекодировка не дала результата. Все равно интерфейс форума отображается знаками вопроса.

kak2z

Цитата: Солярис от 02 октября 2016, 19:42:59Может я чего не понимаю, но при выполнении нескольких команд сразу иной раз выдается, что было задействовано ноль строк.

+++++++++++++++

Кстати, полная перекодировка не дала результата. Все равно интерфейс форума отображается знаками вопроса.
Сравнение всех таблиц должно стать utf8_generali

по поводу интерфейса -
Вы скачали ЮТФ языковые файлы?
Вы в htaccess указали кодировку форума?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис

1. Скачал.
2. Кодировку указал.

Интерфейс нормально отображается, а вот сообщения и другой текст - сплошные иероглифы.

kak2z

Цитата: Солярис от 02 октября 2016, 21:09:151. Скачал.
2. Кодировку указал.

Интерфейс нормально отображается, а вот сообщения и другой текст - сплошные иероглифы.
а в базе текст на русском языке или тоже иероглифы??

попробуйте еще в Settings.php добавить строку
$db_character_set = 'utf8';
и сделать еще такой запрос
INSERT INTO smf_settings (variable, value) VALUES ('global_character_set', 'UTF-8')только в таблице префикс свой укажите..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис

#10
1. В базе текст нормально указан.

2. В файле сеттингс я сразу поменял кодировку.

Цитата: kak2z от 02 октября 2016, 21:11:28только в таблице префикс свой укажите..
О чем речь?

kak2z

вот в этом запросе
INSERT INTO smf_settings (variable, value) VALUES ('global_character_set', 'UTF-8')указывается таблица smf_settings - это префикс "smf_", у Вас префикс может быть иной..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис

После выполнения данной команды
INSERT INTO smf_settings (variable, value) VALUES ('global_character_set', 'UTF-8')
...сообщения стали нормально отображаться, но зато весь интерфейс стал выглядеть знаками вопроса.

kak2z

Цитата: Солярис от 02 октября 2016, 22:08:46После выполнения данной команды
INSERT INTO smf_settings (variable, value) VALUES ('global_character_set', 'UTF-8')
...сообщения стали нормально отображаться, но зато весь интерфейс стал выглядеть знаками вопроса.
в админке точно переключили на нужный язык?? загрузить это одно.. а переключить переключили?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис

#14
Ну так я поэтому и писал выше про всю правильную последовательность действий.

А как теперь с этими вопросами найти нужный пункт меню.

В каком месте в видимом форуме расположено соответствующая настройка?

+++++++++++++++++++

Методом - на ощупь - нашел нужный пункт. Вроде стал работать.

Благодарю за помощь!

А вот как удалить ненужный языковой пакет?

kak2z

Цитата: Солярис от 02 октября 2016, 23:06:51Методом - на ощупь - нашел нужный пункт. Вроде стал работать.

Благодарю за помощь!

А вот как удалить ненужный языковой пакет?
как удалить не знаю)) потому что никогда не удалял))

Цитата: Солярис от 02 октября 2016, 23:06:51А как теперь с этими вопросами найти нужный пункт меню.
В каком месте в видимом форуме расположено соответствующая настройка?
я думал Вы сразу это сделали.. обычно когда ставишь только форум - он на английском.. надо загрузить русский и переключить на русский тут же в соседнем меню) )поэтому я подумал что Вы загрузили русский юникод и сразу переключили))
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Солярис

Так у меня же обновленный тестовый форум с версии 1.1.21 до 2.1.

Поэтому при апгрейде я ставил русский пакет. У меня он на английским и не показывался.  ^-^