WEB开发网
开发学院WEB开发ASP ASP使用Google的translate API 阅读

ASP使用Google的translate API

 2009-07-02 10:41:47 来源:WEB开发网   
核心提示:上篇文字php使用Google的translate API写了以后,突然想做个asp的类,ASP使用Google的translate API,以致asp用户使用,遂写起,需要注意的是因为Google的任何产品都是UTF-8格式的,这个asp文件保存为UTF-8格式,发现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.cncms.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
'... 开抄我上面的代码

就可以了。

Tags:ASP 使用 Google

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接