BinaryDecode

Description

Converts a string to a binary object. Used to convert binary data that has been encoded into string format back into binary data.

Returns

A binary object.

Function syntax

BinaryDecode(string, binaryencoding)

History

ColdFusion MX 7: Added this function.

Parameters

Parameter

Description

string

A string containing encoded binary data.

binaryencoding

A string that specifies the algorithm used to encode the original binary data into a string; must be one of the following:

  • Hex: the characters 0-9 and A-F represent the hexadecimal value of each byte; for example, 3A.

  • UU: data is encoded using the UNIX UUencode algorithm.

  • Base64: data is encoded using the Base64 algorithm, as specified by IETF RFC 2045, at www.ietf.org/rfc/rfc2045.txt.

Usage

Use this function to convert a binary-encoded string representation of binary data back to a binary object for use in your application. Binary data is often encoded as a string for transmission over many Internet protocols, such as HTTP and SMTP, or for storage in a database.

Adobe recommends that you use the BinaryDecode function, not the ToBinary(base64data) function, to convert Base64-encoded data to binary data in all new applications.

See the following pages for additional information on handling binary data:

  • cffile for loading and reading binary data in files

  • cfwddx for serializing and deserializing binary data

  • IsBinary for checking variables for binary format

  • Len for determining the length of a binary object

Example

The following example reads a GIF file as binary data, converts it to a binary-encoded string, converts the binary-encoded data back to binary data and writes the result to a file. It displays the encoded string and the image in the output file.

<h3>Binary Encoding Conversion Example</h3> 
 
<!--- Do the following if the form has been submitted. ---> 
<cfif IsDefined("Form.binEncoding")> 
 
    <!--- Read in a binary data file. ---> 
    <cffile action="readbinary" file="C:\images\help.gif" variable="binimage"> 
 
    <!--- Convert the read data to binary encoding and back to binary data. ---> 
    <cfscript> 
        binencode=BinaryEncode(binimage, Form.binEncoding); 
        bindecode=BinaryDecode(binencode, Form.binEncoding); 
    </cfscript> 
 
    <!---Write the converted results to a file. ---> 
    <cffile action="write" file="C:\temp\help.gif" output="#bindecode#" addnewline="No" > 
 
    <!--- Display the results. ---> 
    <cfoutput> 
        <p><b>The binary encoding:</b> #Form.binEncoding#</p> 
         
        <p><b>The image converted into a binary-encoded string by BinaryEncode 
            </b><br> 
            #binencode#</p> 
        <p><b>The image as written back to a file after converting back to binary 
            using BinaryDecode</b><br> 
        <img src="C:\temp\help.gif"><br>  
    </cfoutput> 
</cfif> 
 
<!--- The input form. ---> 
<form action="#CGI.SCRIPT_NAME#" method="post"> 
    <b>Select binary encoding</b><br> 
    <select size="1" name="binEncoding" > 
        <option selected>UU</option> 
        <option>Base64</option> 
        <option>Hex</option> 
    </select><br> 
    <br> 
    <input type = "Submit" value = "convert my data"> 
</form>