|
|
|
| Известно, что если установлен модуль mbstring, то для корректной работы с русскими символами, нужно использовать соответствующие строковые функции, типа mb_strpos и т.д.
Но я обнаружил, что можно использовать и стандартные функции (без префикса mb), если в php.ini расскомментировать опцию mbstring.func_overload и установить для нее числа, соответствующие конкретным функциям.
Вопрос: насколько это оправдано при разработке сайтов и как часто применяется такой подход? То есть, является ли это панацеей от проблем с кодировкой?
Спасибо.
P.S. В каких версиях PHP это работает или независимо? | |
|
|
|
|
|
|
|
для: baston
(19.02.2010 в 13:33)
| | Модуль mbstring предназначен не для корректной работы с русскими символами, а для работы с мультибайтными строками. | |
|
|
|
|
|
|
|
для: sim5
(19.02.2010 в 13:54)
| | Мультибайтные строки - это, как правило, строки с национальными символами. Верно? А раз так, то косвенно это затрагивает и корректность работы с русскими символами. | |
|
|
|
|
|
|
|
для: baston
(19.02.2010 в 14:00)
| | из своей практики, не очень большой, могу сказать, что если utf-8 - нужно использовать префикс mb_ , указывая во втором параметре функции, что это utf-8, если 1251 - работает правильно и без mb_ | |
|
|
|
|
|
|
|
для: baston
(19.02.2010 в 14:00)
| | Ну прямо таки железная логика! А в однобайтной кодировке русские символы ну никак не могут быть? Не выдумывайте, читайте внимательно мануал. | |
|
|
|
|
|
|
|
для: baston
(19.02.2010 в 14:00)
| | русские символы поддержаны как минимум пятью (а то и более) транспортными однобайтовыми кодировками.
И всего одной(максимум двумя) транспортной многобайтовой.
Так что мысль не катит. | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2010 в 15:42)
| | Интересовала именно UTF-8... | |
|
|
|
|
|
|
|
для: baston
(19.02.2010 в 15:44)
| | именно utf8 ориентирована на гомогенную поддержку всех живых языков.
А не только - и уж извините, не столько - русского.
Что до Вас и пытаются донести.
По теме. Естественно, стоит ориентироваться на utf8 . Но не для поддержки именно русского, а лишь из-за вышесказанного.
Что до того, какими инструментами это делать, то стоит принять как данность, что панацеи в программировании не бывает (она вообще не больно-то где есть) . Включать голову всё равно придется. | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2010 в 15:42)
| | >И всего одной(максимум двумя) транспортной многобайтовой.
А UTF-32? | |
|
|
|
|
|
|
|
для: Loki
(19.02.2010 в 16:42)
| | а она не транспортная - для нее нужен 32-разрядный транспортный канал.
Я бы еще понял, eсли бы ты привел в пример UCS2 (хотя тут тоже вопрос спорный) | |
|
|
|