просто о сложном


Проблема с русскими буквами в функции htmlspecialchars

tags: php

У меня случилось при работе с cp1251, но полагаю, что с любой не UTF-8 кодировкой может возникнуть.

$t = 'Русский язык';
var_dump(htmlspecialchars($t));
var_dump(htmlspecialchars($t, ENT_IGNORE|ENT_COMPAT));
var_dump(htmlspecialchars($t, ENT_IGNORE|ENT_COMPAT, 'cp1251'));
Вывод:
string(61) "пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ"
string(1) " "
string(23) "Русский язык"

Нужно просто явно указать кодировку.

Дело в том, что кодировка по умолчанию для этой функции зависит от директивы конфигурации default_charset, а её обычно на хостингах выставляют в UTF-8.

Всем добра!

posted on december 04, 2012, updated on august 25, 2025

Комментарии

Отправка новых комментариев временно отключена. Извините, работаем над этим.


tags cloud