CMS-AdminStation

(Telegram отдела продаж)

CMS AdminStation
Профессиональная система управления сайтами CMS «AdminStation» — это программный комплекс, позволяющий создавать веб-сайты практически любого уровня сложности с максимальной экономией времени и управлять созданным сайтом, без специальных знаний веб-разработчика.
Логин: Пароль:

Некоторые проблемы с кодировкой UTF-8

Юмор | Программирование | Мысли / Личное

Блог Rem-x Опишу некоторые проблемы возникшие при работе с кодировкой 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);}

?>

В общем все решается очень просто. Надеюсь данная запись вам была полезна. С уважением, Виктор.

Дата публикации: 22.10.2011

 

Комментарии пользователей:

К данной записи ещё нет комментариев

Для добавления комментария, вам необходимо зарегистрироваться!