ASP中利用ADODB.Stream对象将字节流转换为字符流

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 madpolice 的 blog

'--------------------------------------------------------------------
' 二进制转字符串
'
' 入口参数:字节流
' 函数返回:字符串
' 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
'--------------------------------------------------------------------

本文关键:Stream
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top