Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Кастеил

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

Recommended Posts

Guest STOLETOV

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

Share this post


Link to post
Share on other sites
Guest 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 | 
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Share this post


Link to post
Share on other sites

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

					   'sql_charset'    => '',

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

					   'sql_charset'    => 'utf8',

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

Edited by Strategius

Share this post


Link to post
Share on other sites
Увидел эту тему почти через год после установки форума, данную правку не делал (дистрибутив английский). Проблем с кодировкой не наблюдается, все таблицы в 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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

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

 

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

Edited by Strategius

Share this post


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

 

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

Share this post


Link to post
Share on other sites
Так что в вашем случае видимо всё нормально каким-то образом получилось.

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

 

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

Edited by Strategius

Share this post


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

Share this post


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

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

Share this post


Link to post
Share on other sites
Где же гарантия, что у меня установился правильно?
Ну ведь суть правки install.php - это задать кодировку sql_charset для создаваемого conf_global.php. Если в conf_global.php уже стоит utf8 и при этом движок прямо сразу же не падает - то проблем по идее нет.

Share this post


Link to post
Share on other sites
Ну ведь суть правки 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'; все хорошо :)

 

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

Edited by Strategius

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...