打印本文 打印本文 关闭窗口 关闭窗口
ASP中利用ADODB.Stream对象将字节流转换为字符流
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1316  更新时间:2009/4/23 10:50:13  文章录入:mintao  责任编辑:mintao

''''--------------------------------------------------------------------
'''' 二进制转字符串
''''
'''' 入口参数:字节流
'''' 函数返回:字符串
'''' Code By:Madpolice 2002-12-20
'''' 利用 ADODB.Stream 对象,速度比原来的字符替换法快了n倍,n≈30!!)
''''--------------------------------------------------------------------
''''下面的常量是函数用到的,因为我在函数外面已经定义过了,因此不在这里重复定义
''''---- StreamTypeEnum Values ----
''''Const adTypeBinary = 1
''''Const adTypeText = 2

Function Bytes2bStr(vin)
 Dim BytesStream,StringReturn

 Set BytesStream = Server.CreateObject("ADODB.Stream") ''''建立一个流对象
 With BytesStream
  .Type = adTypeText        ''''设置流对象的类型为字符流
  .Open                     ''''打开流对象
  .WriteText vin            ''''把vin写入流对象中

  .Position = 0             ''''设置流对象的起始位置是0,也就是开头
                            ''''这个操作必须做,为什么我也不知道,失败了n次得出的结论
          ''''如果不进行这个操作,下面设置Charset属性就出错
  .Charset = "GB2312"       ''''设置流对象的编码方式为GB2312
  .Position = 2             ''''设置流对象的起始位置是2(过滤掉开始的一个控制字符
          ''''这个控制字符是WriteText方法按默认属性Charset="Unicode"
          ''''读入数据的时候自动加到数据开头的,字符的值是FF3F
                            ''''这个控制字符占2字节,所以Position设置为2
          ''''表示略过2个字节,下面的ReadText方法从Position开始读数据
  StringReturn = .ReadText  ''''把流对象的内容保存在StringReturn变量中
  .close                    ''''关闭流对象
 End With
 Set BytesStream = Nothing     ''''销毁流对象

 Bytes2bStr = StringReturn

End Function
''''--------------------------------------------------------------------

打印本文 打印本文 关闭窗口 关闭窗口