Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml vbscript尝试读取RSS源时出现系统不支持指定编码的问题_Xml_Asp Classic_Vbscript_Rss - Fatal编程技术网

Xml vbscript尝试读取RSS源时出现系统不支持指定编码的问题

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

我试图使用客户端的URL来显示我们网站上的提要。我遇到的问题是,他们的应用程序似乎是用java编写的,XML响应的编码是ISO8859_1,MSXML active x对象不支持这种编码。请参阅此链接以获取参考:

问题是,我非常怀疑我是否能够更改,甚至请求更改响应xml的编码。还有其他的工作吗

代码

它将首先显示所有看起来不错的标题。然后我得到这个错误:

错误代码1072896658原因系统不支持指定的编码。 系统错误:-1072896658

如果我在浏览器中导航到同一个URL,它会很好地显示XML文档

你能为同样的问题提出一个解决方案吗

谢谢, 罗希特

我非常怀疑我是否能够更改,甚至请求更改响应xml的编码

嗯,它坏了。ISO-8859-1的标准名称为
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)