深入解析ASP核心技术
上QQ阅读APP看书,第一时间看更新

2.2.5 十六进制字符串转换为二进制数据

在某些应用场合,我们可能拥有数据的十六进制形式的字符串,如何将它转换回真正的数据呢?还是使用ChrB函数。

看一下范例。

hexString2binary.asp

<%
Dim hexStr, bstr

'数据的十六进制字符串表示形式
hexStr = "47494638396112001200B30D00800000C0C0C0FFFF0E8080008080809A3434FB"&_
    "FBFBFF0A0A303030FF0000FFFF00FFFFFF000000FFFFFF00000000000021F904"&_
    "0100000D002C000000001200120000046DB0C949ABA528E75B33FB1BD7644BC0"&_
    "94E1859CDF02725E799A29F6310371338855AC0C8550082A540E89C427774B1C"&_
    "3A88A4740A487914000035E00A691409807041266B243D0436115094CD238C60"&_
    "3C260B7A16F5D0BD50E08F070C040284020603074F80898A0D8C8D222211003B"

'循环,每两个字符对应一个字节数据
For i=1 To Len(hexStr) Step 2
    byteHex = Mid(hexStr, i,2)      '如开始的47
    byteNumber = "&H" & byteHex     '用&H47转换为数字
    byteStr = ChrB(byteNumber)      '转换类型为字符串

    '拼接数据
    bstr = bstr & byteStr
Next
'指定数据类型为Gif
Response.ContentType="image/gif"

'输出二进制数据
Response.BinaryWrite bstr
%>

运行结果如图2-9所示。

此例提供了一种比较有趣的思路,我们可以把一些二进制文件,如图片、文档、压缩包或可执行文件等,以文本文件的形式保存起来,需要使用的时候,再反过来恢复即可。

图2-9 十六进制字符串数据转换为二进制数据

如何将二进制数据转换为十六进制形式的字符串,相信大家都知道怎么做了,不赘述。