程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> ASP使用Google的translate API

ASP使用Google的translate API

編輯:ASP技巧

上篇文字PHP使用Google的translate API寫了以後,突然想做個asp的類,以致asp用戶使用。遂寫起,發現asp忘了不少。如主題吧,思路和C#的這篇是完全一樣的,我只是把它兌成ASP的實現方式而已。

  直接看代碼:
 
Class GoogleTranslator

    sub Class_Initialize()
        RURI="http://translate.google.com/translate_t?langpair={0}&text={1}"
    End Sub

    PRivate Opt_    '   
    Property Get Opt
        Opt=Opt_
    End Property
    Property Let Opt(Opt_s)
        Opt_=Opt_s
    End Property
    Private RURI

    Function AnalyzeChild(patrn,texts,ipos)
        Dim regEx, Match, Matches    
        Set regEx = New RegExp      
        regEx.IgnoreCase = true      
        regEx.Global = True          
        regEx.Pattern = patrn     
        regEx.Multiline = True 

        Dim RetStr
        Set Matches = regEx.Execute(texts)     
        If(Matches.Count > 0)Then RetStr= Matches(0).SubMatches(IPos)
       
        AnalyzeChild=RetStr
        Set regEx =Nothing
    End Function
    http://bizhi.knowsky.com
    Function getHTTPPage(url)
        dim objXML
        set objXML=server.createobject("MSXML2.XMLhttp")'定義
        objXML.open "GET",url,false'打開
        objXML.send()'發送
        If objXML.readystate<>4 then
            exit function
        End If
            getHTTPPage=BytesToBstr(objXML.responseBody)
        set objXML=nothing'關閉
        if err.number<>0 then err.Clear
    End Function

    Function BytesToBstr(body)
        dim obJStream
        set obJStream = Server.CreateObject("adodb.stream")
            obJStream.Type = 1
            obJStream.Mode =3
            obJStream.Open
            obJStream.Write body
            obJStream.Position = 0
            obJStream.Type = 2
            obJStream.Charset = "utf-8" 
            '轉換原來默認的UTF-8編碼轉換成GB2312編碼,否則直接用XMLHTTP調用有中文字符的網頁得到的將是亂碼
            BytesToBstr = obJStream.ReadText
        obJStream.Close
        set obJStream = nothing
    End Function
    Public Function GetText(str)
        If(isempty(str)) Then Exit Function
        Dim newUrl,Rs
        newUrl=Replace(Replace(RURI,"{0}",Server.URLEncode(Opt)),"{1}",Server.URLEncode(str))
        Rs=getHTTPPage(newUrl)
        GetText = AnalyzeChild("(<div id=result_box dir=""ltr"">)([?:\s\S]*?)(</div>)",Rs,1)
    End Function
    Sub class_Terminate

    End Sub
End Class

然後使用的時候:

Dim Obj
Set Obj = new GoogleTranslator
Obj.Opt="zh-CN|en"
response.write(Obj.GetText("我們"))

然後就可以了,需要注意的是因為Google的任何產品都是UTF-8格式的,這個ASP文件保存為UTF-8格式,並在開頭加上:

<%@ LANGUAGE=VBScript CodePage=65001%>
<%Option Explicit
'... 開抄我上面的代碼

就可以了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved