代码之家  ›  专栏  ›  技术社区  ›  GWR

经典的ASP Base64编码和换行符

  •  0
  • GWR  · 技术社区  · 6 年前

    我一直在使用这个答案中的base64编码函数(代码如下)

    https://stackoverflow.com/a/506992/510296

    我注意到它是在第72个字符之后包装输出行(当我试图将编码字符串传递给eBay API时,这会导致问题)。

    我可以很容易地用 replace(base64string, vblf, "") 但想问是否有一个适当的方法来防止输出中的断线。

    Function Base64Encode(sText)
        Dim oXML, oNode
        Set oXML = CreateObject("Msxml2.DOMDocument.3.0")
        Set oNode = oXML.CreateElement("base64")
        oNode.dataType = "bin.base64"
        oNode.nodeTypedValue =Stream_StringToBinary(sText)
        Base64Encode = oNode.text
        Set oNode = Nothing
        Set oXML = Nothing
    End Function
    
    Function Stream_StringToBinary(Text)
        Const adTypeText = 2
        Const adTypeBinary = 1
    
        'Create Stream object
        Dim BinaryStream 'As New Stream
        Set BinaryStream = CreateObject("ADODB.Stream")
    
        'Specify stream type - we want To save text/string data.
        BinaryStream.Type = adTypeText
    
        'Specify charset For the source text (unicode) data.
        BinaryStream.CharSet = "us-ascii"
    
        'Open the stream And write text/string data To the object
        BinaryStream.Open
        BinaryStream.WriteText Text
    
        'Change stream type To binary
        BinaryStream.Position = 0
        BinaryStream.Type = adTypeBinary
    
        'Ignore first two bytes - sign of
        BinaryStream.Position = 0
    
        'Open the stream And get binary data from the object
        Stream_StringToBinary = BinaryStream.Read
    
        Set BinaryStream = Nothing
    End Function
    
    0 回复  |  直到 6 年前