2009-10-15 5 views
2

Я написал файл XML, который использует кодировку ISO-8859-15, и большая часть данных в фиде выполняется через htmlspecialchars().simpleXML и акцентированные символы в PHP

Затем я использую simplexml_load_string() для извлечения содержимого файла XML для использования в моем скрипте. Однако, если у меня есть специальные символы (то есть: é á ó), он появляется как «Ã ÃÃÃÃÃû.

Как я могу заставить свой скрипт отображать соответствующие символы с особым акцентом?

ответ

3

Возможно, вы используете различную кодировку символов для вывода, чем данные XML на самом деле закодированы.

Согласно вашему описанию, ваши данные XML, закодированные с помощью UTF-8, но ваш выход использует ISO 8859-15. Поскольку UTF-8 кодирует символ é (U + 00E9) с 0xC3A9 и представляет два символа Ã и © соответственно в ISO 8859-15.

Таким образом, вы также используете UTF-8 для своего вывода. Или вы конвертируете данные из UTF-8 в ISO 8859-15 с использованием mb_convert_encoding.

+2

Gumbo, я наткнулся на ваш пост почти два года спустя, но это было действительно полезно для меня, так как у меня была аналогичная проблема, спасибо! Решением, которое я использовал, является 'htmlentities ($ string, ENT_QUOTES, 'UTF-8');' при печати моего вывода из элемента SimpleXMLElement –