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

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

00 голосов
6
Кодировка 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 Ответы

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

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


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

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

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

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

0 голосов
4 ответов
спросил 11 Янв, 14 от Ashihei (100 баллов)
0 голосов
7 ответов
спросил 07 Окт, 13 от Mikstik (220 баллов)
0 голосов
5 ответов
спросил 26 Окт, 13 от IIingvin (120 баллов)
0 голосов
0 ответов