Кодировка в базе.

Автор kusak, 02 декабря 2011, 11:38:44

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

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

kusak

Здравствуйте уважаемые гуру. Подскажите пожалуйста по кодировке в базе данных форума.
Форум установился отлично,живет своей жизнью, пользователи общаются на ура. Но тут я полез в базу и обратил внимание на то, что все таблицы записались в кодировке latin1_swedish_ci, что привело все сообщения и все русские буквы вот к такому крякозябельному виду в самой базе:



Причем,хочу сказать, что все сообщения пользователей, а также сообщения системы на email и так далее и тому подобное, отображаются на форуме корректно на русском языке и проблем нет никаких! А вот в саму базу они записываются кракозябрами, выводятся же отлично!

Возможно ли как-то в базе поправить, чтоб все ссобщения в самой базе корректно отображались на русском,также как и на самом форуме?

Надеюсь, что вы поняли мой вопрос. Заранее вам очень благодарен.

Bugo

Не надо ничего трогать, если работает.

Андрей СПб

#2
Вопрос то был - возможно ли, а не стоит ли. Тоже интересно, насколько это возможно и каков процесс.

Читал кучу постов на тему "Что лучше - 1251 или UTF-8". Пока не стал связываться с Ютифи, и поставил на кодировке Windows-1251, однако хотелось бы также понимать, если через какое-то время понадобится иметь форум в кодировке Ютифи, насколько проблематично перекодировать данные.

Xansen

Цитата: Андрей СПб от 09 января 2012, 22:13:00Пока не стал связываться с Ютифи, и поставил на кодировке Windows-1251, однако хотелось бы также понимать, если через какое-то время понадобится иметь форум в кодировке Ютифи, насколько проблематично перекодировать данные.
проблемы нет - в админке есть кнопка в разделе обслуживание "конвертировать базу win1251 --> UTF8"

Андрей СПб

А при перекодировке насколько корректно она осуществляется, возможны ли при этом какие-то потери символов и т.д.? И как на это отреагируют поисковые системы?

Xansen

Опытов над форумом не ставил, юзаю 1251 на smf более 3 лет!

Андрей СПб

#6
ну а если вернуться к первому сообщению темы, то все-таки можно ли решить эту проблему, и заменить latin1_swedish_ci на 1251, и что надо для этого сделать? может просто заменить значения сравнения, и все?

Макар

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

просто сменить сравнение таблиц не выйдет
Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny

Сергей Д.

Цитата: Bugo от 03 декабря 2011, 10:26:52Не надо ничего трогать, если работает.
В моём случае: кодировка форума 1251, а кодировка баз данных utf8...... Если всё работает, то, насколько понимаю не стоит менять кодировку баз данных?

Обратил внимание, т.к. сегодня была ошибка:
http://za40.org/index.php?http://za40.org/mobiquo/mobiquo.php
Ошибка базы данных: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (cp1251_ukrainian_ci,COERCIBLE) for operation '='
Файл: /home/za40/za40.org/www/mobiquo/include/Load.php
Строка: 1024
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

digger®

Цитата: Сергей Николаевич от 23 ноября 2014, 23:57:51В моём случае: кодировка форума 1251, а кодировка баз данных utf8...... Если всё работает, то, насколько понимаю не стоит менять кодировку баз данных?
При первом же обновлении php до актуальной версии на хостинге, форум нормально работать перестанет. Так что, в любом случае, нужно думать о конвертировании в нормальную кодировку.

Сергей Д.

Каким образом конвертируется кодировка базы данных? Есть ли где мануал?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

digger®

Цитата: Сергей Николаевич от 24 ноября 2014, 00:35:08
Каким образом конвертируется кодировка базы данных? Есть ли где мануал?
1) Сделать бэкап!!!
2) Нажать Админка - Обслуживание форума - База данных - Преобразовать базу данных и данные в UTF-8 - Начать выполнение
3) Установить русскую локализацию Russian-utf8

Сергей Д.

#12
При конвертировании выдаёт ошибку:
Duplicate entry 'радиоС,елеС,,-339' for key 'PRIMARY'
Файл: /home/za40/za40.org/www/Sources/ManageMaintenance.php
Строка: 666

Примечание: возможно, базе данных требуется обновление. Версия файлов форума SMF 2.0.9, тогда как версия используемой базы данных 2.0.5. Для устранения ошибки, пожалуйста, обновите форум.


Что делать в таком случае?  :-[
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

Сергей Д.

Может, как вариант, базу данных перевести в кодировку 1251? Чтобы привести всё к единому знаменателю....
Нашел на просторах интернета следующую команду:
ALTER TABLE `table_name` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
Команда, насколько понимаю, должна перевести базу в 1251....  Помогите, пожалуйста!
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

valek0972

Цитата: Сергей Николаевич от 25 ноября 2014, 12:25:58
Может, как вариант, базу данных перевести в кодировку 1251? Чтобы привести всё к единому знаменателю....
Нашел на просторах интернета следующую команду:
ALTER TABLE `table_name` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
Команда, насколько понимаю, должна перевести базу в 1251....  Помогите, пожалуйста!
Если вы про форум что в профиле у вас показан, то там все нормально отображается.

Валентин4616

Цитата: Сергей Николаевич от 25 ноября 2014, 12:25:58
Может, как вариант, базу данных перевести в кодировку 1251? Чтобы привести всё к единому знаменателю....
Нашел на просторах интернета следующую команду:
ALTER TABLE `table_name` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
Команда, насколько понимаю, должна перевести базу в 1251....  Помогите, пожалуйста!
Тоже только, что зашёл на ваш форум там всё нормально нет ни каких иероглифов.

Yworld_garry

Цитата: valek0972 от 25 ноября 2014, 12:52:50Если вы про форум что в профиле у вас показан, то там все нормально отображается.
Цитата: Валентин4616 от 25 ноября 2014, 12:59:25Тоже только, что зашёл на ваш форум там всё нормально нет ни каких иероглифов.
Потому что выше написано что при конвертации такое происходит, а сейчас насколько вижу, форум в прежней кодировке 1251

Сергей Д.

Да, про форум из профиля и отображается всё нормально. Простите, если ввёл в заблуждение.
Еще раз по порядку:
Была ошибка, о которой писал здесь. После ошибки обратил внимание на то, что кодировка форума и кодировка базы не совпадают.....
По совету digger®, попробовал перекодировать форум и базу в utf8..... - скриншот и ошибка
После кракозябров и неудачной перекодировки, вернул всё назад, поэтому вы и видите, что на форуме всё ок.
Только проблема осталась: форум в кодировке 1251, а база в кодировке utf8.

Вижу три варианта решения проблемы:
1. Оставить всё как есть (тем более, что всё работает - по крайней мере пока что).
2. Выяснить почему выдает ошибку при перекодировании и перекодировать всё в utf8.
3. Перекодировать базу в 1251.

Что посоветуете? У кого уже был подобный опыт с расхождением по кодировкам?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

Yworld_garry

Цитата: Сергей Николаевич от 25 ноября 2014, 13:13:582. Выяснить почему выдает ошибку при перекодировании и перекодировать всё в utf8.
меньше гемора в дальнейшем

valek0972

Цитата: Сергей Николаевич от 25 ноября 2014, 13:13:582. Выяснить почему выдает ошибку при перекодировании и перекодировать всё в utf8.

А этот пункт вы делали после перекодировки?
Цитата: digger® от 24 ноября 2014, 00:56:303) Установить русскую локализацию Russian-utf8

Сергей Д.

#20
Цитата: valek0972 от 25 ноября 2014, 13:27:19
А этот пункт вы делали после перекодировки?
Нет, не делал. По той простой причине, что при перекодировке выдаёт ошибку. После этого, когда захожу в  раздел "база данных" пункт "Преобразовать базу данных и данные в UTF-8", -  так и остаётся (насколько понимаю, раз выбивает ошибку и пункт остаётся - перекодировка неуспешна).

Почему такая ошибка может быть?  :( Я просмотрел файл ManageMaintenance.php - с ним всё ок.... - такой же "как из коробки" 2.0.9
Duplicate entry 'радиоС,елеС,,-339' for key 'PRIMARY'
Файл: /home/za40/za40.org/www/Sources/ManageMaintenance.php
Строка: 666

Примечание: возможно, базе данных требуется обновление. Версия файлов форума SMF 2.0.9, тогда как версия используемой базы данных 2.0.5. Для устранения ошибки, пожалуйста, обновите форум.
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

digger®

Цитата: Сергей Николаевич от 25 ноября 2014, 13:47:36
Почему такая ошибка может быть?  :( Я просмотрел файл ManageMaintenance.php - с ним всё ок.... - такой же "как из коробки" 2.0.9
Duplicate entry 'радиоС,елеС,,-339' for key 'PRIMARY'
Файл: /home/za40/za40.org/www/Sources/ManageMaintenance.php
Строка: 666

В настройках поиска попробуйте отключить индексирование и удалить индексы (если они есть)

Сергей Д.

#22
Цитата: digger® от 25 ноября 2014, 18:50:33удалить индексы (если они есть)
Спасибо за подсказку, индексирование отключено. Суть проблемы вы явно верно уловили, digger®, ставлю вам очередной "+".
http://www.simplemachines.ru/index.php?topic=1428.0 - индексы можно удалить как описано в этой теме?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.


Сергей Д.

#24
Сдвинулось с мёртвой точки, форум переконвертировался, но сплошные кракозябры....
Мануал ничем не помог:
$db_character_set = 'utf8' в файле Settings.php присутствует.



Кроме кракозябров, после перекодировки, ошибка в логах ошибок:
(URL)http://za40.org/index.php?topic=2.0
Undefined variable: topic_page_tpl
Файл: /home/za40/za40.org/www/Sources/Subs-Optimus.php
Строка: 141

Вот такого плана ошибки аж на 17 страницах....

Invalid argument supplied for foreach()
Undefined variable: topic_site_tpl
Undefined variable: topic_name_tpl
Undefined variable: topic_page_tpl


Конфликт с Optimus Brave? Может его удалить перед конвертацией?

Откатил форум назад.

И ещё. Может быть некорректная перекодировка из за того, что index.russian.php версии 2.0.4, а форум версия 2.0.9?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

Сергей Д.

#25
Установил Open Server и тренируюсь с перекодировкой форума на нём....
Удалил Optimus Brave и ошибка Subs-Optimus.php перестала появляться в логах.
Перекодировка всё равно не получается как надо....  :(
Ещё одна ошибка, после перекодировки:
http://test/index.php?topic=349.msg6681;topicseen
Invalid argument supplied for foreach()
D:/OpenServer/domains/test/Sources/Load.php

С чем связан файл Load.php? Насколько понял - проблемы с каким-то одним постом? Пять похожих ошибок (Load.php) и ссылка на один и тот же пост.

Кстати, Open Server изначально стал отображать сайт с кракозябрами..... Пока не разобрался почему.

И ещё.....
На запрос к базе данных, после перекодировки:
INSERT INTO smf_settings (variable, value) VALUES ('global_character_set', 'UTF-8')
Пишет ошибку: #1062 - Duplicate entry 'global_character_set' for key 'PRIMARY' - может здесь кроется проблема??

И ещё не понял, почему часть пользователей закреплены за windows-1251 ? Я по умолчанию поставил utf8...... Как удалить 1251 ?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

GeorG

Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Сергей Д.

#27
Думаю, что всем будет интересно почему не получалось сменить кодировку.... Оказалось всё элементарно: я, по незнанию, оставил кодировку 1251, в "кодировке данных". Скриншот прилагается.  :) Думал, что 1251 относится не к базе, а к сайту, а сайт-то у меня был в 1251.  :)

Теперь, господа, просьба помочь мне справиться с ошибками, которые начали вываливаться после перекодировки.

Invalid argument supplied for foreach() - Load.php

// Are we also loading the members custom fields into context?
if ($display_custom_fields && !empty($modSettings['displayFields']))
{
$memberContext[$user]['custom_fields'] = array();
if (!isset($context['display_fields']))
$context['display_fields'] = unserialize($modSettings['displayFields']);

foreach ($context['display_fields'] as $custom)
{
if (empty($custom['title']) || empty($profile['options'][$custom['colname']]))
continue;

$value = $profile['options'][$custom['colname']];

// BBC?
if ($custom['bbc'])
$value = parse_bbc($value);
// ... or checkbox?
elseif (isset($custom['type']) && $custom['type'] == 'check')
$value = $value ? $txt['yes'] : $txt['no'];



И вторая ошибка.
Undefined variable: topic_name_tpl
Undefined variable: topic_page_tpl
- Subs-Optimus.php

// Номер текущей страницы в заголовке (при условии, что страниц несколько)
$board_page_number = $topic_page_number = '';
if ($context['current_action'] != 'wiki')
{
if (!empty($context['page_info']['current_page']) && $context['page_info']['num_pages'] != 1)
{
$trans = array("{#}" => $context['page_info']['current_page']);
$board_page_number = strtr($board_page_tpl, $trans);
$topic_page_number = strtr($topic_page_tpl, $trans);
}
}

// Topics
if (!empty($context['topic_first_message']))
{
$trans = array(
"{topic_name}" => $topicinfo['subject'],
"{board_name}" => strip_tags($board_info['name']),
"{cat_name}" => $board_info['cat']['name'],
"{forum_name}" => $context['forum_name']
);
$topic_page_number = !empty($topic_page_number) ? $topic_page_number : (!empty($topic_site_tpl) ? ' - ' : '');
$context['page_title'] = strtr($topic_name_tpl . $topic_page_number . $topic_site_tpl, $trans);
$context['optimus_description'] = !empty($modSettings['optimus_topic_description']) ? optimus_meta_teaser() : '';
}


После перекодировки в UTF8 надо удалять 1251 ? Если надо, то какие именно файлы?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

ВладимирК

Сергей Николаевич вот уж воистину когда Админу делать нечего он кодировку меняет.
Я тоже бился с этим и вот что из этого вышло:

Сергей Д.

Это шутка юмора была такая?  :)
А если серьёзно? Интересно было-бы ваш форум глянуть.... Можно ссылку?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

ВладимирК

Нет не шутка. Если бы Разработчик движка считал utf8 основным, то он бы и был По Умолчанию. Однако это не так. Стало быть Основная кодировка 1251. Вот и вся задача.
------------------
Извините, не покажу ссылку на мой форум.
Стыдно мне.     :facepalm:
Форум висит без посетителей несколько лет.  wallbash

Yworld_garry

Цитата: ВладимирК от 29 ноября 2014, 16:35:41Стало быть Основная кодировка 1251
Такой кодировки, как и еще сотни других практически уже нет, имею ввиду для веб мастеров.
Как понимаете вариантов выбора остается не много.

ВладимирК

Именно в этот Форуме мы видим:
Скрипт var smf_charset = "windows-1251";
и      
Тег <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
Значит есть кодировка 1251 !

Yworld_garry

Цитата: ВладимирК от 29 ноября 2014, 16:55:09Именно в этот Форуме мы видим:

Сколько с вами общаюсь на форуме, не первый год и все время сводите все  к частностям и не хотите подумать или почитать или просто узнавать что то более в широком плане.
Да и не только тут и еще на 1000500 сайтов такое есть. Но время идет вперед и все меняется, в сегодняшних реалиях нового программного обеспечения такая кодировка, точнее просто назовем устаревшей!
Возьмем этот форум, раз вы на него обратили внимание, тут никогда не будет никаких модификаций и других изменений кода, сервером управляет админ форума, отсюда просто нет смысла заморачиватся с перекодировкой и тд.
Новые версии PHP не поддерживают или поддерживают "виртуально" кодировку 1251! Хостер обновится и ваш форум станет мертвым.

ВладимирК

Не знаю ничего про новые разработки, идеи, и не слежу за прогрессом.
Поэтому Вам верю. НО!
Я ставил Форум на движке SMF в кодировке ПО УМОЛЧАНИЮ 1251.
А не в ЮТФ8.
И перевести его в ЮТФ8 мне, и не только мне, не удалось.
Почему? Да потому что движку SMF - ЧУЖДАЯ ЮТФ8.

Yworld_garry

Цитата: ВладимирК от 29 ноября 2014, 17:37:44Да потому что движку SMF - ЧУЖДАЯ ЮТФ8.

Скажу вам по секрету, разработчики SMF вообще не знают где Россия на картах находится, не говоря о русскоговорящих регионах)))

ВладимирК

Цитата: Yworld_garry от 29 ноября 2014, 17:41:00Скажу вам по секрету, разработчики SMF вообще не знают где Россия на картах находится, не говоря о русскоговорящих регионах)))
Вот те раз! То-то я заметил что ВСЕ Теги - Коды - Стили - Ссылки - Скрипты - Сценарии не На Русском написаны а на каком-то НЕ Русском языке - который мне совсем неизвестен.
Его бывает называют Латиницей а по мне дак похож на Английский.

Yworld_garry

Цитата: ВладимирК от 29 ноября 2014, 17:51:05Вот те раз! То-то я заметил что ВСЕ Теги - Коды - Стили - Ссылки - Скрипты - Сценарии не На Русском написаны а на каком-то НЕ Русском языке - который мне совсем неизвестен.
Его бывает называют Латиницей а по мне дак похож на Английский.

В который раз, по ходу беседы с вами начинаю терять нить и перестаю вас понимать)))

digger®

Цитата: ВладимирК от 29 ноября 2014, 17:37:44Я ставил Форум на движке SMF в кодировке ПО УМОЛЧАНИЮ 1251.А не в ЮТФ8.
А причина проста - Mavn написал win-1251 семь лет назад в шпаргалке по установке SMF, поэтому все так и ставили :)
Кто своей головой думал, сразу или позже, у тех сейчас форумы без проблем с кодировками.

ЦитироватьДа потому что движку SMF - ЧУЖДАЯ ЮТФ8.
SMF поддерживает utf-8 еще с версии 1.0, а 2.1 вообще устанавливается только в utf-8 без вариантов.

ЦитироватьИ перевести его в ЮТФ8 мне, и не только мне, не удалось.
Кривизна рук или настроек серверного ПО не имеет отношения к вопросу.


ВладимирК

#39
Наконец то объяснили что если долго (очень долго) и упорно мучиться то можно перевести в ЮТФ8.
Но я уже через это прошёл - через танцы с бубном.
Больше не хочу. да и ЗАЧЕМ?
Вот разве что, когда будет необходимость - тогда конечно.
------------------
А вот Сергей Николаевич Геройствует. Но ЮТФ8 всё равно сильней его. Меня она победила, и не только меня. И Сергея Николаевича победит тоже.

Сергей Д.

Помогите, таки, если не затруднит, с ошибками.....

unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 45 of 500 bytes
Invalid argument supplied for foreach()
Ошибки связаны с файлом Load.php

// Are we also loading the members custom fields into context?
if ($display_custom_fields && !empty($modSettings['displayFields']))
{
$memberContext[$user]['custom_fields'] = array();
if (!isset($context['display_fields']))
$context['display_fields'] = unserialize($modSettings['displayFields']);

foreach ($context['display_fields'] as $custom)
{
if (empty($custom['title']) || empty($profile['options'][$custom['colname']]))
continue;

$value = $profile['options'][$custom['colname']];


Ошибку выбивает строчка
$context['display_fields'] = unserialize($modSettings['displayFields']);
И строчка
foreach ($context['display_fields'] as $custom)
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

digger®

Цитата: Сергей Николаевич от 29 ноября 2014, 18:27:52
Помогите, таки, если не затруднит, с ошибками.....

unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 45 of 500 bytes
Invalid argument supplied for foreach()
Дополнительные поля профиля есть созданные?
Попробуйте кэш очистить в админке.

DJ-X

Зачем в PHP код лезть? Разве что это прописать в Settings.php.
mysql_query("SET NAMES 'cp1251'");

Почитав эту тему я тоже решил просмотреть кодировки во всех своих базах и таблицах.
И таки нашел базу с кодировкой 1251 и в ней таблицы utf8 и при этом всё работало нормально.

1: Делаем резервную копию базы данных.
2: Открываем получившийся файл в программе Notepad++
3: Жмём поиск, замена.

Меняем везде это
CHARACTER SET utf8
на это
CHARACTER SET cp1251

и это
COLLATE utf8_general_ci;
на это
COLLATE cp1251_general_ci;

Если база в кодировке utf8 нужно зайти в меню кодировки и нажать преобразовать в ANSI

4: Удаляем базу данных и все таблицы из базы и создаём новую базу  с кодировкой cp1251 cp1251_general_ci и пользователя.
5: Заливаем базу данных, ошибок быть не должно.

И теперь всё работает без крякозябр и выглядит красиво.

Вместо phpMyAdmin использовал бесплатную программу dbForge Studio for MySQL.

Сергей Д.

#43
Цитата: ВладимирК от 29 ноября 2014, 18:06:42
А вот Сергей Николаевич Геройствует. Но ЮТФ8 всё равно сильней его. Меня она победила, и не только меня. И Сергея Николаевича победит тоже.
Не факт, упорство и труд всё перетрут. И, надеюсь, другим пригодится информация по перекодировке.
Цитата: digger® от 29 ноября 2014, 19:09:56
Дополнительные поля профиля есть созданные?
Попробуйте кэш очистить в админке.
Очистка кэша не помогла, а вот удаление дополнительного поля "skype" помогло. Спасибо огромное, digger®!!!

Прошу помочь мне по второй ошибке, которая, тоже, появилась после перекодирования.
- файл Subs-Optimus.php

// Обрабатываем шаблоны заголовков страниц
if (!empty($modSettings['optimus_templates']) && strpos($modSettings['optimus_templates'], 'board') && strpos($modSettings['optimus_templates'], 'topic'))
{
$templates = @unserialize($modSettings['optimus_templates']);
foreach ($templates as $name => $data)
{
if ($name == 'board') {
$board_name_tpl = $data['name'];
$board_page_tpl = $data['page'];
$board_site_tpl = $data['site'];
}
if ($name == 'topic') {
$topic_name_tpl = $data['name'];
$topic_page_tpl = $data['page'];
$topic_site_tpl = $data['site'];
}
}
}
else
{
foreach ($txt['optimus_templates'] as $name => $data)
{
if ($name == 'board') {
$board_name_tpl = $data[0];
$board_page_tpl = $data[1];
$board_site_tpl = $data[2];
}
if ($name == 'topic') {
$topic_name_tpl = $data[0];
$topic_page_tpl = $data[1];
$topic_site_tpl = $data[2];
}
}
}

// Номер текущей страницы в заголовке (при условии, что страниц несколько)
$board_page_number = $topic_page_number = '';
if ($context['current_action'] != 'wiki')
{
if (!empty($context['page_info']['current_page']) && $context['page_info']['num_pages'] != 1)
{
$trans = array("{#}" => $context['page_info']['current_page']);
$board_page_number = strtr($board_page_tpl, $trans);
$topic_page_number = strtr($topic_page_tpl, $trans);
}
}

// Topics
if (!empty($context['topic_first_message']))
{
$trans = array(
"{topic_name}" => $topicinfo['subject'],
"{board_name}" => strip_tags($board_info['name']),
"{cat_name}" => $board_info['cat']['name'],
"{forum_name}" => $context['forum_name']
);
$topic_page_number = !empty($topic_page_number) ? $topic_page_number : (!empty($topic_site_tpl) ? ' - ' : '');
$context['page_title'] = strtr($topic_name_tpl . $topic_page_number . $topic_site_tpl, $trans);
$context['optimus_description'] = !empty($modSettings['optimus_topic_description']) ? optimus_meta_teaser() : '';
}


Invalid argument supplied for foreach()
в этой строчке:
foreach ($templates as $name => $data)

Undefined variable: topic_site_tpl
в этой строчке:
$context['page_title'] = strtr($topic_name_tpl . $topic_page_number . $topic_site_tpl, $trans);

Undefined variable: topic_page_tpl
в этой строчке:
$topic_page_number = strtr($topic_page_tpl, $trans);

Undefined variable: board_page_tpl
в этой строчке:
$board_page_number = strtr($board_page_tpl, $trans);
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

digger®

Цитата: Сергей Николаевич от 30 ноября 2014, 01:19:38Прошу помочь мне по второй ошибке, которая, тоже, появилась после перекодирования.- файл Subs-Optimus.php
В админке оптимуса попробуйте удалить в первой вкладке шаблоны загловков страниц и разделов. Потом заново впишите.

Сергей Д.

Спасибо, digger®. Даже всё проще разрешилось....
Когда удалял оптимус, убрал галочки с "Создать и периодически обновлять xml-карту форума" и "Показывать ссылку на xml-карту форума в подвале". Теперь поставил оптимус и решил заглянуть в "логи ошибок", а ошибки перестали сыпаться....
С ошибками, связанными с перекодировкой, похоже, покончено.
Но нарисовалась одна проблема.
Пользователи с русскими никами не могут зайти на форум. Видимо, тоже связано с сменой кодировки.
Что делать?  wallbash
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

Mavn

через восстановление пароля пусть заходят
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Сергей Д.

#47
По факту: через 2-5 попыток, пользователей с русскими никами пускает на форум. Это как-нибудь лечится?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.

digger®

Цитата: Сергей Николаевич от 30 ноября 2014, 14:06:08
По факту: через 2-5 попыток, пользователей с русскими никами пускает на форум. Это как-нибудь лечится?
Никак это не лечится, хэш паролей с русскими символами будет разным для разных кодировок. Напишите сразу объявление, что пользователям с русскими паролями потребуется сбросить их через восстановление паролей.

Сергей Д.

#49
Я создал нового пользователя (с русским ником): его, тоже, пустило со второго раза.......... wallbash
Ну будем считать, что это недостаток кодировки, надеюсь единственный. Я начитался, в похожих темах, что проблема тянется не один год.
А по поводу объявления на форуме - бегу создавать.
Ещё раз спасибо за помощь в борьбе с ошибками!!!

Что ещё хотел уточнить.... Как сделать чтобы новые пользователи могли регистрироваться только с никами на латинском?
Форум za40.org - знакомства и общение тех, кому за 40.  :)
TheHost - надёжный, быстрый и недорогой хостинг с отличной техподдержкой 24/7. Выбор потребителя 2020!  O0  Форум za40.org размещён именно на этом хостинге.