itljl 发表于 2009-9-22 19:33:44

这是AU3正则BUG吗?

本帖最后由 itljl 于 2009-9-24 12:17 编辑

#Include <Array.au3>
#include <INet.au3>

$downurl = "http://xl.dygod.com/html/tv/oumeitv/20090617/19649.html"
_movieDownURL($downurl)

Func _movieDownURL($downurl);分析出下载连接
        $Str_s = 'href="'
        $Str_e = '">ftp'
        local $sReturn
       
        $oIE = _INetGetSource($downurl)


        $sReturn = StringRegExp($oIE, $Str_s & '(.*)' & $Str_e, 3)
        _ArrayDisplay($sReturn)

Endfunc   ;==>_movieDownURL大家看提出来的地址中,第五个,有乱码,而实际获得的源码中,是没有乱码的.

kn007 发表于 2009-9-22 21:40:19

我也想知道,不过这种问题的帖子好像见过了,忘了叫什么了,也是乱码。。。。郁闷

35888894 发表于 2009-9-22 21:55:44

stringmid
stringinstr
配合不是一样HAPPY么?为什么都要用正则呢?

kn007 发表于 2009-9-22 22:01:37

正则较准确,而且有安全感,汗~

kkikk 发表于 2009-9-22 23:56:04

感觉好像还是源码有问题,难道AU3正则会有这样BUG么?做个标记

philips 发表于 2009-9-23 11:11:34

你保存成文件,再从文件中读取,打开文件的时候用UTF8 方式 实验看看

zoulin 发表于 2009-9-23 11:33:06

学习中,不要打扰我

itljl 发表于 2009-9-24 10:47:44

6# philips

你好,按照你说的方法,错的更厉害了

kn007 发表于 2009-9-24 10:51:55

是错得太离谱了

tegl 发表于 2009-9-24 11:27:06

AU3的正则对中文的支持不是很好

afan 发表于 2009-9-24 11:43:19

正则没有错,获取源码时就是乱码字符串了

bob 发表于 2009-9-24 12:04:46

同意11楼说法

你自己用 MsgBox(0,"", $oIE) 看看就知道问题原因了

建议用 InetGet("http://xl.dygod.com/html/tv/oumeitv/20090617/19649.html", "D:\test.txt")
然后在用正则处理文本

itljl 发表于 2009-9-24 12:17:08

谢谢各位,先检查了网页源码,没看仔细,原来错在这一步,不是错在正则.谢谢各位.

afan 发表于 2009-9-24 12:24:41

如果不使用临时文件,可以这样(不使用_INetGetSource函数)#include <Array.au3>

$downurl = "http://xl.dygod.com/html/tv/oumeitv/20090617/19649.html"
_movieDownURL($downurl)

Func _movieDownURL($downurl);分析出下载连接
        Local $sReturn, $Str_s = 'href="', $Str_e = '">ftp'
        $oIE = _XmlHttp($downurl)
        $sReturn = StringRegExp($oIE, $Str_s & '(.*)' & $Str_e, 3)
        ;_ArrayDisplay($sReturn)
        MsgBox(0, 0, _ArrayToString($sReturn, @CRLF))
EndFunc   ;==>_movieDownURL

Func _XmlHttp($Url) ;作者:Sanhen
        Local $oHTTP, $sReturn
        $oHTTP = ObjCreate("microsoft.xmlhttp")
        $oHTTP.Open("get", $Url, False)
        $oHTTP.Send()
        $sReturn = BinaryToString($oHTTP.responseBody)
        Return $sReturn
EndFunc   ;==>_XmlHttp

itljl 发表于 2009-9-24 12:28:07

14# afan


谢谢这位兄弟.
页: [1]
查看完整版本: 这是AU3正则BUG吗?