ColdFusion EncodeFor XML не работает с символами UTF-8 - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь создать файл XML, и у меня есть много специальных символов, таких как ö, ä, et c. Я использую EncodeForXML (ранее использовался XMLFormat), но в браузере это выглядит хорошо, если я нажимаю кнопку просмотра исходного кода и сохраняю содержимое как файл XML, эти символы преобразуются в ö, ä et c

Вот пример:

<?xml version="1.0" encoding="utf-8" ?> 
    <kunde>
    <kdnr>118133</kdnr>
    <fullname>Conny R&#xf6;nnb&#xe4;ck</fullname>
    <delname1>Conny R&#xf6;nnb&#xe4;ck</delname1>
    <delname2></delname2>
    <delstreet>L&#xf6;ftets gr&#xe4;nd 1</delstreet>
    <delcountry>SE</delcountry>
    <delzipcode>90363</delzipcode>
    <deltown>Ume&#xe5;</deltown>
    <phone></phone>
    <mobile></mobile>
</kunde>

Есть идеи, как заставить функцию EncodeForXML отображать правильные специальные символы?

1 Ответ

1 голос
/ 15 апреля 2020

Что именно вы пытаетесь сделать с XML? Это именно то, что делает эта функция. Он кодирует определенные символы, чтобы их можно было правильно интерпретировать с помощью синтаксического анализатора XML.

<cfsavecontent variable="foo">
    <kunde>
        <kdnr>118133</kdnr>
        <fullname>Conny R&#xf6;nnb&#xe4;ck</fullname>
        <delname1>Conny R&#xf6;nnb&#xe4;ck</delname1>
        <delname2></delname2>
        <delstreet>L&#xf6;ftets gr&#xe4;nd 1</delstreet>
        <delcountry>SE</delcountry>
        <delzipcode>90363</delzipcode>
        <deltown>Ume&#xe5;</deltown>
        <phone></phone>
        <mobile></mobile>
    </kunde>
</cfsavecontent>

<cfdump var="#xmlParse(foo)#">

xmlParse()

Обновление: Если вам нужно отправить реальные символы. затем удалите функцию encodeForXML() и оберните содержимое каждого узла с помощью [CDATA][1].

Термин CDATA, означающий символьные данные, используется для различных, но связанных целей, в языках разметки SGML и XML. Термин указывает, что определенная часть документа является общими символьными данными, а не не символьными данными или символьными данными с более конкретной c ограниченной структурой.

<fullnane><![CDATA[#someQuery.fullname#]]></fullname>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...