Xml vbscript尝试读取RSS源时出现系统不支持指定编码的问题
我试图使用客户端的URL来显示我们网站上的提要。我遇到的问题是,他们的应用程序似乎是用java编写的,XML响应的编码是ISO8859_1,MSXML active x对象不支持这种编码。请参阅此链接以获取参考: 问题是,我非常怀疑我是否能够更改,甚至请求更改响应xml的编码。还有其他的工作吗 代码 它将首先显示所有看起来不错的标题。然后我得到这个错误: 错误代码1072896658原因系统不支持指定的编码。 系统错误:-1072896658 如果我在浏览器中导航到同一个URL,它会很好地显示XML文档 你能为同样的问题提出一个解决方案吗 谢谢, 罗希特 我非常怀疑我是否能够更改,甚至请求更改响应xml的编码 嗯,它坏了。ISO-8859-1的标准名称为Xml vbscript尝试读取RSS源时出现系统不支持指定编码的问题,xml,asp-classic,vbscript,rss,Xml,Asp Classic,Vbscript,Rss,我试图使用客户端的URL来显示我们网站上的提要。我遇到的问题是,他们的应用程序似乎是用java编写的,XML响应的编码是ISO8859_1,MSXML active x对象不支持这种编码。请参阅此链接以获取参考: 问题是,我非常怀疑我是否能够更改,甚至请求更改响应xml的编码。还有其他的工作吗 代码 它将首先显示所有看起来不错的标题。然后我得到这个错误: 错误代码1072896658原因系统不支持指定的编码。 系统错误:-1072896658 如果我在浏览器中导航到同一个URL,它会很好地显示X
ISO-8859-1
。ISO8859_1不是它的法定别名。为了实践良好的网络公民身份,你应该要求改变。指出它坏了,并要求修理。为了实践良好的公民意识,您的客户应该修复该漏洞
ISO8859_1是一个最初在Java库代码中用作映射到ISO-8859-1的名称。这种用法很好,尽管我不理解映射的必要性。但是从那里人们假设Java使用的内部名称实际上是编码名称——不是真的。它实际上是一个只有Java才知道的别名。然后,这种错误的想法蔓延到了Java之外的其他库和框架,它们错误地认为,如果Java使用ISO8859_1作为编码名称,那么它一定是正确的。底线是ISO8859_1不应用于实际的xml文档中,因为实际的xml文档需要IANA编码字符串
同时 如果我在浏览器中导航到同一个URL,它会很好地显示XML文档 这不是我得到的。将其用作rss源:
<?xml version="1.0" encoding="ISO8859_1"?>
<rss version="2.0">
<channel>
<title>FeedForAll Sample Feed</title>
<description>RSS is a fascinating technology. ....</description>
...
<?xml version="1.0" encoding="ISO8859_1"?>
<rss version="2.0">
<channel>
<title>FeedForAll Sample Feed</title>
<description>RSS is a fascinating technology. ....</description>
...
Function UrlGet(url)
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlhttp.open "GET", url, False
xmlhttp.send
'' treat the output as plain text. We know it may be broken.
UrlGet = xmlhttp.responseText
End Function
Dim url
url = "http://localhost/misc/broken.rss"
'' the above URL starts with an XML declaration of
'' <?xml version="1.0" encoding="ISO8859_1"?>
'' ... which is invalid, because ISO8859_1 is not a valid
'' name for an XML encoding.
Dim urlText
urlText = UrlGet(url)
'' replace the encoding with what we think it should be
urlText = Replace(urlText,"encoding=""ISO8859_1""","encoding=""ISO-8859-1""")
Set doc1 = CreateObject("Msxml2.DOMDocument.6.0")
doc1.async = False
doc1.preserveWhiteSpace= False ' True
doc1.loadXml(urlText)