mb_substr (PHP) по-разному работает на разных хостингах

Asar
На сайте с 23.08.2004
Offline
334
1002

$str = 'ремонт';

$Something = mb_strtoupper(mb_substr($str, 0, 1, UTF8), UTF8);

return $fc.mb_substr($str, 2);

На одном хостинге ожидаемый результат («Ремонт») будет в случае, если в последней строке будет

$fc.mb_substr($str, 1);

На другом, если

$fc.mb_substr($str, 2);

Если же оставить единицу на хостинге, который хочет двойку, то будет что-то вроде «Р�монт» вместо «Ремонт».

Подскажите, люди добрые, от чего зависит сия несправедливость?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

Может разные версии PHP не?

Указывайте кодировку во всех mb_substr и всё будет нормально.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
M
На сайте с 04.12.2013
Offline
223
#2

Скорее всего так и есть. Там между версиями менялась кодировка по умолчанию.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
Asar
На сайте с 23.08.2004
Offline
334
#3
LEOnidUKG:
Может разные версии PHP не?
Указывайте кодировку во всех mb_substr и всё будет нормально.

Так UTF8 жеж прописано в стартпосте?..

M
На сайте с 04.12.2013
Offline
223
#4

mb_substr($str, 2);

S
На сайте с 30.09.2016
Offline
469
#5
Asar:
Так UTF8 жеж прописано в стартпосте?..

Во-первых, в каждой формуле прописывать надо. В-вторых, кавычки не забывайте: 'UTF-8'.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Asar
На сайте с 23.08.2004
Offline
334
#6
Sitealert:
Во-первых, в каждой формуле прописывать надо. В-вторых, кавычки не забывайте: 'UTF-8'.

Да, протупил я по полной. Спасибо, что разжевали :--)

M
На сайте с 04.12.2013
Offline
223
#7

Sitealert, я думал, это константа. Вы прям экстрасенс :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий