<% Class CBase64 Private objXmlDom Private objXmlNode ' GetObjectParam() 这个函数实现参考了开源项目PJBlog Private Function GetObjectParam() On Error Resume Next Dim Temp GetObjectParam = "Microsoft.XMLDOM" Err = 0 Dim TmpObj Set TmpObj = Server.CreateObject(GetObjectParam) Temp = Err.Number If Temp = 1 Or Temp = -2147221005 Then GetObjectParam = "Msxml2.DOMDocument.5.0" End If Err.Clear Set TmpObj = Nothing Err = 0 End Function Private Sub Class_Initialize() Set objXmlDom = Server.CreateObject(GetObjectParam()) End Sub Private Sub Class_Terminate() Set objXmlDom = Nothing End Sub Public Function encode(AnsiCode) encode = "" Set objXmlNode = objXmlDom.createElement("tmp") objXmlNode.datatype = "bin.base64" objXmlNode.nodeTypedvalue = AnsiCode encode = objXmlNode.Text Set objXmlNode = Nothing End Function Public Function decode(base64Code) On Error Resume Next decode = "" Set objXmlNode = objXmlDom.createElement("tmp") objXmlNode.datatype = "bin.base64" objXmlNode.Text = base64Code decode = objXmlNode.nodeTypedvalue Set objXmlNode = Nothing If Err Then Err.Clear End If End Function ' 以下函数编码字符串 Public Function encodeText(ByVal str) On Error Resume Next Dim ado, r: r = "" If str <> "" Then Set ado = Server.CreateObject("ADODB.Stream") With ado .Charset = "gb2312" .Type = 2 If .State = 0 Then .Open .WriteText str .Position = 0 .Type = 1 r = encode(.Read(-1)) .Close End With Set ado = Nothing End If If Err Then Err.Clear: r = "" encodeText = r End Function ' 以下函数解码字符串 Public Function decodeText(ByVal str) On Error Resume Next Dim ado, r: r = "" If str <> "" Then Set ado = Server.CreateObject("ADODB.Stream") With ado .Charset = "gb2312" .Type = 1 If .State = 0 Then .Open .Write (decode(str)) .Position = 0 .Type = 2 r = .ReadText(-1) .Close End With Set ado = Nothing End If If Err Then Err.Clear: r = "" decodeText = r End Function End Class %>