Encoding XMLHTTP-读取iso-8859-2内容并编写UTF-8

Encoding XMLHTTP-读取iso-8859-2内容并编写UTF-8,encoding,utf-8,vbscript,asp-classic,xmlhttprequest,Encoding,Utf 8,Vbscript,Asp Classic,Xmlhttprequest,我需要从iso-8859-2页面读取内容,并在我的代码中使用UTF-8编写 代码示例: <%@ language="VBSCRIPT" codepage="65001" %> <% set xmlhttp=Server.CreateObject("Msxml2.XMLHttp.6.0") Set re=New RegExp re.IgnoreCase=True re.Global=True xmlhttp.open "get", li

我需要从iso-8859-2页面读取内容,并在我的代码中使用UTF-8编写

代码示例:

<%@  language="VBSCRIPT" codepage="65001" %>
<%
    set xmlhttp=Server.CreateObject("Msxml2.XMLHttp.6.0")
    Set re=New RegExp
    re.IgnoreCase=True
    re.Global=True

    xmlhttp.open "get", link, false
    xmlhttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded; charset=ISO-8859-2"
    xmlhttp.send()
    html=xmlhttp.responsetext

    re.Pattern="<h1>.*?</h1>"
    set aux=re.execute(html)

    text = aux(0)
    response.write text
%>


我需要在UTF-8上正确输出文本。有人能帮我吗?

问题是
。ResponseText
不会解码您的
iso-8859-2
请参阅

IXMLHTTP尝试将响应解码为Unicode字符串。它假定默认编码为UTF-8,但只要服务器发送适当的Unicode字节顺序标记,就可以解码任何类型的UCS-2(大或小尾端)或UCS-4编码


尝试使用
.ResponseBody
来代替,或者使用
ADODB.Stream
来获取
.ResponseStream
并将其转换为
UTF-8
请参见。

很抱歉,这不是一个真正的答案,但每次我不得不用谷歌搜索字符串编码时,我都会看到这篇文章,阅读它,解决我的问题,然后通常一周后就忘了这一切。谢谢根据您的回复,我使用了.ResponseBody(但是页面是二进制的),所以我在Google上找到了一个将二进制转换为字符串的函数。我只是将页面中的字符集设置为UTF-8和“瞧”。谢谢
html=BinaryToString(xmlhttp.responseBody)
@MarceloMadnezz很高兴它能为您工作,但是您可能会发现
ADODB.Stream
方法可以将
ISO-8859-2
文本转换为
UTF-8
更健壮,而不是将二进制转换为字符串(请参阅我回答中的链接)。我只是想让您知道,我正在使用它来阅读“新闻”来自我的客户网站(我没有访问数据库的权限),并将他们的“新闻”放在我的系统中。我将稍后检查
ADODB.Stream
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" >
<h1>Novo público no interior</h1>
"Novo pï¿¿o no interior"