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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值