Дополнительно
(Telegram отдела продаж)
Юмор | Программирование | Мысли / Личное
Опишу некоторые проблемы возникшие при работе с кодировкой UTF-8
При создании новой версии скрипта PopUp v4.0 pro, я впринципе впервые серьёзно столкнулся с кодировкой UTF-8. Трудности возникли смешные, возможно просто от отсутствия опыта с данной кодировкой, но промонниторив интернет, заметил что данные вопросы очень часто поднимаются в сети среди программистов.
Итак, собственно проблема номер один: неправильное отображение русских симоволов в теме сообщения e-mail, отправляемого PHP функцией mail();
Решение проблемы очень простое, дело в том, что заголовки содержащие не ACSII символы, должны быть закодированы с помощью base64. Для этого заголовок необходимо оформить следующим образом:
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
Проблема номер два: При обрезании utf-8 строки при помощи функции substr().
При обрезании строки при помощи substr(), в конце обрезанной строки появляется символ в виде знака вопроса или ромбика. Для решения данной проблемы создал функцию utf8_substr, которая работает корректно с кодировкой UTF-8. Сама функция выглядит так:
<?php
function utf8_substr($str, $from, $len) { return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1', $str);}
?>
В общем все решается очень просто. Надеюсь данная запись вам была полезна. С уважением, Виктор.
К данной записи ещё нет комментариев
Для добавления комментария, вам необходимо зарегистрироваться!