Как обрабатывать фигурные апострофы и фигурные кавычки в PHP при генерации XML? - PullRequest
2 голосов
/ 09 января 2012

В моей БД есть некоторый текст, который, вероятно, скопирован и вставлен из текстового документа, содержит несколько кавычек и апострофов. PHP-код генерирует XML-данные / документ с этим текстом в качестве одного из его XML-элементов.

Это ошибка, которую я получаю, когда пытаюсь отобразить документ XMl

Эта страница содержит следующие ошибки:

ошибка в строке 40 в столбце 1: ошибка кодирования

Ниже приведено отображение страницы до первой ошибки.

Я пытался, как упоминалось в посте здесь , но у меня это не работает. Также попробовал

$ output = iconv ('UTF-8', 'ASCII // TRANSLIT', $ input);

как уже упоминалось здесь . Этот отображает текст до появления фигурных кавычек или апострофа. Нужно ли упоминать здесь какой-либо другой формат вывода символов?

Есть ли в PHP какая-либо функция для обработки специальных символов этого типа при создании документа XML. Я использую <?xml version="1.0" encoding="utf-8"?> кодировку символов для документа XML

Вот мой код

header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="utf-8"?>';

$item = mysql_fetch_object($result);
<listitems>
    <item>
        <name><?=htmlspecialchars(stripslashes($item->name))?></name>
        <details><?=htmlspecialchars(stripslashes($item->details))?></details>
        .
        .
        .
        .

    </item>
</listitems>

Ответы [ 2 ]

3 голосов
/ 09 января 2012

на столе написано CHARSET ПО УМОЛЧАНИЮ = latin1

Возможно, вы извлекаете данные ISO-8859-1 и выводите их как UTF-8. Это приведет к недопустимым символам за пределами 128 основных символов ASCII.

Попробуйте это iconv():

$ output = iconv ('ISO-8859-1', 'UTF-8 // TRANSLIT', $ input);

0 голосов
/ 09 января 2012

Попробуйте обернуть текстовые узлы, содержащие фигурные апострофы, в блоки CDATA следующим образом:

<text><![CDATA[This is my test´s text]]></text>

Таким образом вы не разрешаете средствам просмотра XML анализировать этот текст, и он отображается правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...