asp小偷程序中如何判断偷的页面编码?

xroha 2008-04-11 02:48:15
asp小偷程序中如何判断偷的页面编码?

本身是GB2312,如何判断远程得到的页面文件编码?
...全文
166 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
myvicy 2008-04-11
不用注释,6楼的是固定为gb2312了。
回复
xroha 2008-04-11
多谢楼上两位!
回复
xroha 2008-04-11
思路意思我明白了,

但是代码不会写,六楼的代码好象不是很正确。

回复
文盲老顾 2008-04-11
六楼的意思其实就是采集后,在采集的内容中匹配 charset,如果有就返回匹配结果,没有就使用默认的设置
回复
xroha 2008-04-11
[Quote=引用 6 楼 myvicy 的回复:]
VBScript code '自动判断编码开始
Set re = New RegExp
re.Pattern = "CharSet=(\S+)"">"
re.IgnoreCase = True
' response.write http_request.ResponseText
' response.end
Dim charresult
' charresult = re.Execute(http_request.ResponseText)
If (charresult <> Null) Then
Cset = charresult(0)
Else
Cset = "gb2…
[/Quote]

能详解下代码吗?

好象不对啊,
' charresult = re.Execute(http_request.ResponseText)
要注解掉吗?
回复
myvicy 2008-04-11
 '自动判断编码开始
Set re = New RegExp
re.Pattern = "CharSet=(\S+)"">"
re.IgnoreCase = True
' response.write http_request.ResponseText
' response.end
Dim charresult
' charresult = re.Execute(http_request.ResponseText)
If (charresult <> Null) Then
Cset = charresult(0)
Else
Cset = "gb2312" '对获取不到的网站采用gb2312编码,可自行更改
End If
回复
xroha 2008-04-11
asp 不能判断采集到的信息是什么编码吗?是UTF-8还是GB2312?
回复
文盲老顾 2008-04-11
那你采集两次吧。。。根据他的 meta 采集第二次

response.write server.htmlencode(getHttpPage("http://bbs.chinaz.com","UTF-8"))
回复
xroha 2008-04-11
条件是:
首先不能确定要采集的目标网页是什么编码,可能是GB2312,也可能是UTF-8

要做到采集的内容都能在GB2312编码下正常显示,不出现乱码。

楼上的你把目标网址换成一个UTF-8编码的地址后,采集到的显示为乱码。

比如:response.write server.htmlencode(getHttpPage("http://bbs.chinaz.com","GB2312"))

就不正常了。
回复
文盲老顾 2008-04-11
<%
Function BIN2STR(xBinary,Charset)
Dim RS, LBinary,Binary
Binary = xBinary
Const adLongVarChar = 201
Set RS = CreateObject("ADODB.Stream")
RS.Type = 1
RS.Mode =3
LBinary = LenB(Binary)

if LBinary>0 then
RS.Open
RS.Write Binary
RS.Position = 0
RS.Type = 2
RS.Charset = Charset
BIN2STR = RS.ReadText
Else
BIN2STR = ""
End If
End Function

Function getHttpPage(xUrl,Charset)
On Error Resume Next
Dim Http
Set Http = Server.CreateObject("Microsoft.XMLHTTP")
Http.Open "GET",xUrl,False
Http.Send()
If Http.ReadyState <> 4 Then
Response.Write "Error,Can't conect source."
getHttpPage = False
Exit Function
End If
getHttpPage = BIN2STR(Http.responseBody,Charset)
Set Http = Nothing
If Err Then
Response.Write "<p align='center'><font color='red'><b>Error ! " & Err.Description & "</b></font></p>"
getHttpPage = Err.description
Err.Clear
End If
End function

response.write server.htmlencode(getHttpPage("http://www.163.com","GB2312"))
%>
回复
文盲老顾 2008-04-11
采集到的信息一般都是二进制的内容,自己转编码吧?
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-11 02:48
社区公告
暂无公告