Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Кастеил

Проблема с кодировкой

Рекомендованные сообщения

Гость STOLETOV

@Dmitriy427, Спасибо, очень помогло!!!

Поделиться сообщением


Ссылка на сообщение
Гость FlemQaa;)

че за данная ошибка прошу вас помочь написать мне в скайп

 

mySQL query error: SELECT id FROM faq WHERE app='core' AND title = 'ПоиÑк' 

SQL error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 
SQL error code: 1267 
Date: Sunday 06th March 2016 04:37:28 PM 


—------------------------------------------------------------------------------------------------------------------------------------------------------------------------------— 
Date: Sun, 06 Mar 2016 16:37:28 +0000 
Error: 1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 
IP Address: 127.0.0.1 - /admin/install/index.php?app=install§ion=install&do=acphelp 
—------------------------------------------------------------------------------------------------------------------------------------------------------------------------------— 
mySQL query error: SELECT id FROM faq WHERE app='core' AND title = 'ПоиÑк' 
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. 
| File | Function | Line No. | 
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------| 
| admin/setup/applications/install/sections/install.php | [admin_core_tools_help].helpFilesXMLImport_app | 1481 | 
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' 
| admin/setup/applications/install/sections/install.php | [install_install].install_acphelp | 139 | 
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' 
| admin/setup/sources/base/ipsController_setup.php | [install_install].doExecute | 258 | 
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Поделиться сообщением


Ссылка на сообщение
02/09/17 17:18 (изменено)

Не поможет. При установке эти настройки не будут учитываться и на следующем шаге они затрутся. Поэтому придется делать небольшой фикс.Открыть admin\setup\sources\base\install.phpНайти

					   'sql_charset'    => '',

Заменить на (задать utf8)

					   'sql_charset'    => 'utf8',

Увидел эту тему почти через год после установки форума, данную правку не делал (дистрибутив английский). Проблем с кодировкой не наблюдается, все таблицы в utf8_general_ci. Устанавливал на Open Server, где эта кодировка идет по-умолчанию. Ничего страшного, что я не сделал эту правку? Очень беспокоит данный вопрос.

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение
Увидел эту тему почти через год после установки форума, данную правку не делал (дистрибутив английский). Проблем с кодировкой не наблюдается, все таблицы в utf8_general_ci. Устанавливал на Open Server, где эта кодировка идет по-умолчанию. Ничего страшного, что я не сделал эту правку?
У меня аналогично было… Один форум апгрейдился, и там до апгрейда написал в конфиге $INFO['sql_charset'] = 'utf8'; в итоге всё нормально там было.

А потом на другом форуме (на этом же сервере) - форум ставил с нуля… инсталлятор не правил, в conf_global написать utf8 не смог (до инсталла - затирается, после инсталла - форума падает сразу). Ну и оставил без этой опции. Сам по себе форум работал, русские буквы нормально вводил/выводил. Но, потом начались странности с хуками и внешними использованиями базы, оказалось в базе всё лежало некорректно - в базе русских UTF8 букв не было, все посты с русскими словами местами в HTML-кодах, местами в виде DxDxDxDx… (двухбайтный юникод интерпретируемый базой как ANSI). Хотя поля у базы все обозначены как UTF8…

 

Пришлось наконец найти и прочитать эту инструкцию, установить форум заново с правкой \install.php - и там уже всё нормально стало.

 

Очевидно вам надо посмотреть в phpMyAdmin как выглядят русские тексты в таблицах b_forum_perms b_groups b_message_posts b_posts.

И попробовать написать в conf_global.php строку $INFO['sql_charset'] = 'utf8'; - если форум не упадёт то значит он полноценно в UTF8 работает.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
02/09/17 18:19 (изменено)

Большое спасибо за подробный ответ!

 

как выглядят русские тексты в таблицах b_forum_perms b_groups b_message_posts b_posts

Выглядят корректно, также, как и на форуме - родная кириллица :)

 

И попробовать написать в conf_global.php строку $INFO['sql_charset'] = 'utf8';

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

 

Значит, точно все нормально, и та строчка не обязательно нужна была при установке? Я просто испугался, форум уже год почти работает хорошо, а тут эту тему увидел, и подумал, что неправильно установил...

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение
Значит, точно все нормально, и та строчка не обязательно нужна была при установке?
Ну вот у меня при установке с нуля 3.4.9 - написать в conf_global.php $INFO['sql_charset'] = 'utf8'; не получалось - форум падал (вообще, даже в админку не войти, кэши в базе и на диске сбрасывал - не помогало). А поставил заново с правкой \install.php - и там уже сразу в конфиге стало $INFO['sql_charset'] = 'utf8'.

 

Так что в вашем случае видимо всё нормально каким-то образом получилось.

Поделиться сообщением


Ссылка на сообщение
02/09/17 18:37 (изменено)
Так что в вашем случае видимо всё нормально каким-то образом получилось.

Может, потому что устанавливал на локалхосте (Open Server)? Там кодировка БД сервера - utf8 по-умолчанию.

 

post-59150-0-54708400-1486665441_thumb.png

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение
Там кодировка БД сервера - utf8 по-умолчанию.
У меня в серверном окружении везде где только можно задано UTF8 - и в MySQL конфигах, и в апаче, и ещё где-то там… Во всех выводах переменных на тему кодировок - UTF8. Однако вот IPB без правки install.php всё равно вставал криво.

Поделиться сообщением


Ссылка на сообщение
У меня в серверном окружении везде где только можно задано UTF8 - и в MySQL конфигах, и в апаче, и ещё где-то там… Во всех выводах переменных на тему кодировок - UTF8. Однако вот IPB без правки install.php всё равно вставал криво.

Вот это засада... И что же делать? Где же гарантия, что у меня установился правильно? Переустановить - невозможно, слишком сильно кастомизирован форум...

Поделиться сообщением


Ссылка на сообщение
Где же гарантия, что у меня установился правильно?
Ну ведь суть правки install.php - это задать кодировку sql_charset для создаваемого conf_global.php. Если в conf_global.php уже стоит utf8 и при этом движок прямо сразу же не падает - то проблем по идее нет.

Поделиться сообщением


Ссылка на сообщение
02/09/17 19:33 (изменено)
Ну ведь суть правки install.php - это задать кодировку sql_charset для создаваемого conf_global.php. Если в conf_global.php уже стоит utf8 и при этом движок прямо сразу же не падает - то проблем по идее нет.

Похоже, что действительно все в порядке.

 

Провел эксперимент: при выставлении в conf_global.php $INFO['sql_charset'] = 'latin1'; форум падает и выдает такую ошибку:

 

Your settings could not be read by IP.Board. This is a fatal error and IP.Board cannot function while this issue persists.

 

This issue is generally caused by changing your character set in the ACP to one that does not support data stored in the rest of your settings, or by restoring a database backup/completing a server transfer and importing your database tables using the wrong character set or collation. You should contact IPS Technical Support for further assistance.

При выставлении $INFO['sql_charset'] = 'ansi'; ошибка иная:

 

There appears to be an error with the database.

 

If you are seeing this page, it means there was a problem communicating with our database. Sometimes this error is temporary and will go away when you refresh the page. Sometimes the error will need to be fixed by an administrator before the site will become accessible again.

 

You can try to refresh the page by clicking here

При выставлении $INFO['sql_charset'] = 'utf8'; все хорошо :)

 

Значит, все в порядке?

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...