Кириллица и htmlentities/htmlspecialchars. Проблема с русскими символами

января
14
2012

Иногда по невнимательности возникает такая проблема, что функция htmlentities конвертирует кириллические буквы в нечитаемую последовательность символов. Это значит, что Вы не указали кодировку, которую функция будет использовать при преобразовании строки в html-сущности.

Решается эта проблема очень легко - необходимо добавить в вызов функции третий параметр-кодировку. Чаще всего это строка 'UTF-8' или 'cp1251'. Также Вы можете использовать функцию htmlspecialchars вместо htmlentities. Она работает таким же образом, но конвертирует меньший диапазон специальных символов. Не забывайте про кодировку, в htmlspecialchars также есть этот аргумент.

Приведем небольшой пример, при котором htmlentities/htmlspecialchars возвращают кракозябли вместо строки с кириллическими символами:


<?php echo htmlentities("Кириллица") ?>

В результате на странице видим Ð�иÑ�иллиÑ�а вместо слова "Кириллица". После добавления двух параметров ENT_QUOTES и 'UTF-8', проблема исчезает:


<?php echo htmlentities("Кириллица", ENT_QUOTES, 'UTF-8') ?>

Комментарии (2)

105950
8 марта 2024 г. 20:17
На жаль мені не допомогло. Отримав хостинг на infinityfree.com, зареєстрував свій сайт, почав створювати сторінку на HTML. Вона проста і елементарна, 2 кілобайти, дуже швидко грузиться: http://2c.free.nf. Але вже зіткнувся з проблемою: замість тексту українською мовою виводяться ромби. Хто загляне у написаний мною власноручно index.html той побачить, що звертаюсь я сюди після багатьох спроб вирішити проблему самостійно. Шукав, читав, експериментував. При відкриванні цього index.html на локальному компютері з жорсткого диска - все ОК, все добре відображається. А при відкриванні http://2c.free.nf - одні ромби замість літер. Задача - як зробити щоб відображалась українська кирилиця?
105950
8 марта 2024 г. 20:40
Перепрошую, але на третій день інтенсивних пошуків вже розібрався сам. Може комусь пригодиться то відповідаю: Досяг мети шляхом редагування файла .htaccess, який override standard site settings. Всіх бажаючих запрошую поглянути на результат ))
Вы должны войти под своим аккаунтом чтобы оставлять комментарии