Кирилиця і 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. Всіх бажаючих запрошую поглянути на результат ))
Ви повинні увійти під своїм аккаунтом щоб залишати коментарі