vb中文字和二进制相互转换

本文介绍了一种在Visual Basic环境中实现字符串与字节数据之间的相互转换的方法。该方法能够处理包括中文在内的混合字符集,并提供了两个核心函数:StrToByte用于将字符串转换为字节数组,而ByteToStr则负责将字节数组还原成原始字符串。

StrToByte:字符串->字节数组
ByteToStr:字节数组->字符串

可转换中英文混合字符.

Private Sub StrToByte(s As String, b() As Byte)
    Dim i As Long
    Dim p As Long
    Dim b1 As Byte, b2 As Byte
    For i = 1 To Len(s)
        If Asc(Mid$(s, i, 1)) >= 0 Then
            ReDim Preserve b(p)
            b(p) = Asc(Mid$(s, i, 1))
            p = p + 1
        Else
            ReDim Preserve b(p + 1)
            Call IntToByte(Asc(Mid$(s, i, 1)), b1, b2)
            b(p) = b1
            b(p + 1) = b2
            p = p + 2
        End If
    Next i
End Sub

Private Sub IntToByte(n As Integer, b1 As Byte, b2 As Byte)
    Dim s As String
    s = Right$("0000" & Hex$(n), 4)
    b1 = CByte("&H" & Left$(s, 2))
    b2 = CByte("&H" & Right$(s, 2))
End Sub

Private Function ByteToStr(b() As Byte) As String
    Dim i As Long
    While i <= UBound(b)
        If b(i) < 128 Then
            ByteToStr = ByteToStr & Chr$(b(i))
            i = i + 1
        Else
            ByteToStr = ByteToStr & Chr$(ByteToInt(b(i), b(i + 1)))
            i = i + 2
        End If
    Wend
End Function

Private Function ByteToInt(b1 As Byte, b2 As Byte) As Integer
    Dim s As String
    Dim s1 As String, s2 As String
    s1 = Right$("00" & Hex$(b1), 2)
    s2 = Right$("00" & Hex$(b2), 2)
    s = "&H" & s1 & s2
    ByteToInt = CInt(s)
End Function

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值