Специальные символы PHP

Когда я вывожу текст £ 3,99 за M² из xml-файла, браузер отображает его как 3,99 фунта на M². XML- файл находится в формате UTF-8. Интересно, как это исправить.

Убедитесь, что вы выводите UTF-8. Это преобразование звучит так, как ваш источник UTF-8, но вы говорите браузеру ожидать чего-то еще (Latin1?). Вам следует отправить заголовок, указывающий на браузер UTF-8, и вы должны иметь правильный мета-заголовок:

<?php header ('Content-type: text/html; charset=utf-8'); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <?php echo "£3.99 per M²"; ?> </body> </html> 

Это должно работать правильно.

Вы должны кодировать html-объекты:

вы можете попробовать

 htmlentities($str, ENT_QUOTES, "UTF-8"); 

Посмотрите здесь полную ссылку

Если у вас все еще есть проблемы, иногда вам также необходимо декодировать строку с помощью utf8_decode (), чтобы вы могли попробовать:

 $str = utf8_decode($str); $str = htmlentities($str, ENT_QUOTES);