我需要从一个页面中读取一个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
%>原产地原文:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" >
<h1>Novo público no interior</h1>今天的输出在utf-8页上:
"Novo pï¿¿o no interior"我需要在UTF-8上正确输出文本。有谁可以帮我?
发布于 2014-02-19 15:10:56
问题是.ResponseText不会对您的iso-8859-2进行解码--参见MSDN文档中的这条语句
IXMLHTTP试图将响应解码为Unicode字符串。它假定默认编码是UTF-8,但只要服务器发送适当的Unicode字节顺序标记,就可以解码任何类型的UCS-2 (大端或小端)或UCS-4编码。
尝试使用.ResponseBody代替或失败,使用ADODB.Stream获取.ResponseStream并将其转换为UTF-8 (参见ASP:我无法将某些字符从utf-8解码到iso-8859-1。 )。
https://stackoverflow.com/questions/21883647
复制相似问题