Adobe ColdFusion 8

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.

Category

Conversion functions, String functions

Function syntax

BinaryDecode(string, binaryencoding)

See also

BinaryEncode, CharsetEncode, CharsetDecode

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:\CFusionMX7\wwwroot\CFIDE\administrator\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>