【发布时间】:2016-12-02 19:22:37
【问题描述】:
现在我有一个 XML,它基本上是所有站点和子站点的名称。 XML 格式是这样的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Sites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.fakeurl.com">
<site SId="00600095e-8450-0002-0000-847002f99he" WebId="xyz767-8450-0002-0000-847002f99heb"
Url="http://a122.xyz.com" Own="" RecOwn="" Nm="ABC" Desc="ABC" Org="" Pr="" SC="" St="Blank Site"
Sr="" CDb="XXCO_PP_ABC_Content_01" ACId="" />
</Sites>
现在网站的标题之一有字符“VT”。我无法粘贴它,因为它没有使用符号(见下面的屏幕截图)。它在记事本++中复制时显示为VT,并且在记事本上显示为带圆圈的箭头符号。在浏览器上,如果我尝试复制它会给出一个空白空间。我将附上符号的屏幕截图,就像它在记事本中的显示方式一样。
问题是由于这个字符而导致的 XML 中断。我已经用正确的编码处理了所有可能的特殊字符,但是这个符号我无法在我的代码中替换,因为我无法在 Visual Studio 中复制和粘贴。它只出现在记事本和记事本++中。关于如何处理这个字符的任何想法??
【问题讨论】:
-
尝试像
<?xml version="1.0" encoding="utf-8"?>这样将编码属性值替换为utf-8。 -
这没有帮助...最初是utf-8,我改成ISO来处理其他字符
-
如果您的输入包含垂直制表符,那么它不是 XML(至少不是 XML 1.0)并且不能被 XSLT 处理。在处理文档之前,使用其他工具替换它(或至少将 XML 声明更改为 `version="1.1")。
-
如果我更改为 1.1 浏览器会说 xml 版本在 chrome 中不受支持