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