XML CDATA 部分特殊字符编码尝试在浏览器中打开时出错
XML CDATA section special character encoding Error when trying to open in browser
我在 Amazon S3 服务器上有几个 XML 文件,其中包含我们要在各个网站上展示的公司广告。其中一些需要带有 CDATA 标签的所有信息。但是当我尝试用浏览器打开文件时,由于文本中的特殊字符,它总是给我编码错误。每个文件的文本都是另一种语言(法语、西班牙语等)。
但是 CDATA 部分不是要忽略所有特殊字符吗?我对 Python、XML 等很陌生,但我找不到关于 Google 的答案(也许我用错误的方式表达了问题,idk)。
一旦我对特殊字符(例如 &)进行编码并删除 CDATA 标签,我就可以毫无问题地使用浏览器查看文件。
<?xml version="1.0" encoding="utf-8"?>
<source xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<job>
<id><![CDATA[removed]]></id>
<url><![CDATA[removed]]></url>
<title><![CDATA[removed]]></title>
<description><![CDATA[removed]]></description>
<date><![CDATA[removed]]></date>
<country><![CDATA[removed]]></country>
<city><![CDATA[removed]]></city>
<company><![CDATA[removed]]></company>
</job>
</source>
我希望能够毫无问题地将任何特殊字符放入 CDATA,但我做不到。
使用 CDATA 意味着您不需要像 <
和 &
那样转义 XML 特殊字符,例如“<”和“&”。但它不影响非 ASCII 字符的处理,例如带重音的法语字母。这些需要使用 XML 声明中声明的字符编码进行编码(而不是转义),就好像它们不在 CDATA 中一样。 (以任何方式看待这些角色都是非常以英语为中心的"special")。
我在 Amazon S3 服务器上有几个 XML 文件,其中包含我们要在各个网站上展示的公司广告。其中一些需要带有 CDATA 标签的所有信息。但是当我尝试用浏览器打开文件时,由于文本中的特殊字符,它总是给我编码错误。每个文件的文本都是另一种语言(法语、西班牙语等)。
但是 CDATA 部分不是要忽略所有特殊字符吗?我对 Python、XML 等很陌生,但我找不到关于 Google 的答案(也许我用错误的方式表达了问题,idk)。
一旦我对特殊字符(例如 &)进行编码并删除 CDATA 标签,我就可以毫无问题地使用浏览器查看文件。
<?xml version="1.0" encoding="utf-8"?>
<source xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<job>
<id><![CDATA[removed]]></id>
<url><![CDATA[removed]]></url>
<title><![CDATA[removed]]></title>
<description><![CDATA[removed]]></description>
<date><![CDATA[removed]]></date>
<country><![CDATA[removed]]></country>
<city><![CDATA[removed]]></city>
<company><![CDATA[removed]]></company>
</job>
</source>
我希望能够毫无问题地将任何特殊字符放入 CDATA,但我做不到。
使用 CDATA 意味着您不需要像 <
和 &
那样转义 XML 特殊字符,例如“<”和“&”。但它不影响非 ASCII 字符的处理,例如带重音的法语字母。这些需要使用 XML 声明中声明的字符编码进行编码(而不是转义),就好像它们不在 CDATA 中一样。 (以任何方式看待这些角色都是非常以英语为中心的"special")。