Пробовал закрыть в кавычки, выдает ошибку. Судя по описанию функции htmlspecialchars правильный синтаксис без кавычек. Добавил в скрипт страницы, в одном из мест где выводится отформатированый указаной в предыдущем посте функцией текст, дополнительный скрипт для проверки входящей и выходящей кодировки:
<?= format_text($content);var_dump(iconv_get_encoding('all'));?>
, результат
array(3) { ["input_encoding"]=> string(10) "ISO-8859-1" ["output_encoding"]=> string(12) "ISO-8859-1" ["internal_encoding"]=> string(12) "ISO-8859-1" }
затем добавил в пользовательскую функцию следующие строки
function format_text ($text) {
iconv_set_encoding("internal_encoding", "WINDOWS-1251");
iconv_set_encoding("output_encoding", "WINDOWS-1251");
$result = htmlspecialchars($text, WINDOWS-1251);
$result = str_replace("\r\n","<br>",$result);
$result = str_replace("","<b>",$result);
$result = str_replace("","</b>",$result);
$result = str_replace("","<i>",$result);
$result = str_replace("","</i>",$result);
$result = str_replace("[a href=']","<a href='",$result);
$result = str_replace("[']","'>",$result);
$result = str_replace("['nwin]","' target='_blank'>",$result);
$result = str_replace("[/a]","</a>",$result);
$result = str_replace("[p]","<b class=\"pgrm\">",$result);
$result = str_replace("[/p]","</b>",$result);
$result = str_replace ("|-","–",$result);
$result = str_replace ("[q]","»",$result);
$result = str_replace ("[/q]","«",$result);
$result = str_replace ("[qs]","›",$result);
$result = str_replace ("[/qs]","‹",$result);
$result = str_replace ("|'","’",$result);
return $result;
}
в результате кодировки поменялись
array(3) { ["input_encoding"]=> string(10) "ISO-8859-1" ["output_encoding"]=> string(12) "WINDOWS-1251" ["internal_encoding"]=> string(12) "WINDOWS-1251" }
но по прежнему русский текст не выводится.
Замена аргумента в функции htmlspecialchars($text, WINDOWS-1251) на другие кодировки типа ISO-8859-5 (от1до 15), UTF-8 приводит к тому, что на странице появляются "кракозябры", либо только английский текст с цифрами и знаками, в ISO-8859-5 ещё появляются правильно отформатированые ссылки.