Добро пожаловать на сайт Bitrix Q&A, где вы можете задавать вопросы о программировании и разработке на Битрикс и получать быстрые и квалифицированные ответы от профессионалов!


Сайт на 1С-Битрикс в кодировке UTF-8

0 голосов
Кодировка UTF-8 становится все более распространенной в Ру-нете. Сайтов на UTF-8 все больше, ведь преимущества очевидны. Движки, авторы которых задумываются о существовании своих творений в будущем, переходят на UTF-8. Конечно не остался в стороне и 1С-Битрикс. Однако в силу своей, видимо, неповоротливости сделать это авторам по-человечески не суждено. В коде массово используются PHP-функции, которые не предназначены для работы в данной кодировке. Заменить все функции на требуемые аналоги - это время и деньги. На такие подвиги компания видимо не готова. Именно поэтому всем, кто вздумает строить сайт на 1С-Битрикс в кодировке UTF-8 будет настоятельно рекомендовано установить на хостинге PHP-опцию mbstring.func_overload в значение 2 или больше. Оставим в сторонке корректность данного решения. Может быть в качестве временного оно и подходит. Гораздо интереснее другое. Мне как раз пришлось сейчас потоптаться по этим граблям и я хотел бы поделиться информацией.

Мало на каких хостингах, если такие вообще существуют, PHP-опция mbstring.func_overload по умолчанию установлена в значение 2 или больше. Чтобы установить ее в это значение существует три способа:

1. Включение параметра php_value mbstring.func_overload 2 в .htaccess. Вроде бы все просто. Именно это разработчики 1C-Битрикс рекомендуют сделать. Данная строчка закоментированная есть уже в файле. Кому надо могут ее активизировать. Однако есть один любопытный нюанс. Начиная с PHP версии 5.2.9 данный параметр не работает! Он просто игнорируется. Поэтому если ваш хостинг использует PHP последних версий, то можете забыть про данный способ.

2. Конечно же mbstring.func_overload может быть изменен как необходимо непосредственно в файле PHP.INI. Однако, если ваш сайт расположен на виртуальном хостинге, то вред ли хостер именно под вас будет менять настройки сервера. Ведь тогда для других пользователей данные настройки тоже применяться. А оно реально мало кому надо и иногда может даже навредить.

3. Существует способ, когда хостинг запускает PHP не модулем апатча, а через CGI. В данном случае вы имеете свой собственный PHP.INI файл, который можете крутить (настраивать), как душе угодно. Способ данный тоже не является панацеей. И нормальные хостеры его используют или предлагают использовать в крайнем случае. Дело в том, что PHP в таком режиме работает заметно медленнее! В два раза как минимум (по моим собственным наблюдениям). А движок 1С-Битрикс и так не легкий, так что за меньшую в два раза а то и больше нагрузку на сервер хостинга можно и побороться. В каких-то случаях это позволит обходиться менее дорогими тарифами.

Как видите, какого-то окончательного решения, в данной ситуации нет. Я все же в глубине души надеюсь, что разработчики 1С-Битрикс когда нибудь смогут перелопатить свои коды, приведя их к нормальному виду, пригодному для работы с UTF-8. Хотя учитывая объемы кодов и его не очень-то внятную структуру надежда очень не велика. Исходя из этого я бы все же НЕ рекомендовал движок 1C-Битрикс для проектов в кодировке UTF-8. Во всяком случае пока.
спросил 06 Окт, 13 от ErickJ (120 баллов)

6 Ответы

0 голосов
в тему почти
типа обновление

Код
Ошибка
Кодировка используемой вами базы данных MySql 'utf8', системе обновлений необходима кодировка 'cp1251'. Обратитесь к администратору MySql для выполнения запроса alter database psbox default character set cp1251


может обратится лучше к разрабам битрикса, что бы они это сами делали?
клиенты мозг проедают
еще и красным текстом. у них же паника. лемминги в шоке же!
ответил 20 Окт, 13 от Quietest (140 баллов)
0 голосов
Битрикс не виноват:
1. В том, что вы используете хостинг, который не соответствует заявленным изначально требованиям.
2. В том, что вы не потрудились настроить MySQL.
3. В том, что вы показываете ошибки своим клиентам, вместо того, чтобы решать эти проблемы без их участия.

Битрикс прекрасно работает с UTF-8. Учитывая объемы кодов и их внятную структуру, я бы все же рекомендовал движок 1C-Битрикс для проектов в кодировке UTF-8.
ответил 23 Янв, 14 от xDROx (300 баллов)
0 голосов
Существуют движки, которым не нужны "костыли" в виде mbstring.func_overload 2. Исходя из этого Битрикс все же не самый лучший движок для кодировки UTF-8.
ответил 11 Май, 14 от ErickJ (120 баллов)
0 голосов
сайт для кодировки или кодировка для сайта?..
ответил 07 Сен, 14 от ashkmn (700 баллов)
0 голосов
Цитата
Дмитрий пишет:Начиная с PHP версии 5.2.9 данный параметр не работает

Столкнулся с этим на очень качественном хостинге в США. Друпал, Джумла, Вордпресс прекрасно работают на UTF. Битрикс нет. Согласен с автором - Битрикс должен что то с этим делать.
ответил 13 Янв, 15 от TOGORqb (140 баллов)
0 голосов
Какой тогда выход? Что делать людям которые хотят сайт на битрикс?
ответил 30 Апр, 15 от Ramiel (100 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 11 Янв, 14 от Ashihei (100 баллов)
0 голосов
7 ответов
спросил 07 Окт, 13 от Mikstik (220 баллов)
0 голосов
5 ответов
спросил 27 Окт, 13 от IIingvin (120 баллов)
0 голосов
0 ответов
Управление продуктом: аналитика, разработка, продвижение