Ошибки программирования. Забыл про юникод

В коде повторяю одни и те же ошибки. Из-за них ничего не работает. Вот одна.

При сравнении строк без учета регистра забыл, что у меня юникод.

if (strtolower($input_name) == $name) { ... }

В результате функция strtolower вместо строчных русских букв выдала мусор. Сравнение не сработало. Процесс пошел по другой ветке. Пользователь в панике.

А правильно использовать mb_strtolower.

if (mb_strtolower($input_name) == $name) { ... }

То же самое относиться и к другим функциям работы со строками. При юникоде и других кодировках использовать функции с префиксом mb_.

Успехов.

Поделиться
Отправить
Популярное