View comments | RSS feed

BinaryEncode

Description

Converts binary data to a string.

Returns

An encoded string representing the binary data.

Category

Conversion functions, String functions

Function syntax

BinaryEncode(binarydata, encoding)

See also

BinaryDecode, CharsetEncode, CharsetDecode

History

ColdFusion MX 7: Added this function.

Parameters

Parameter Description

binarydata

A variable containing the binary data to encode.

encoding

A string specifying the encoding method to use to represent the data; one of the following:

  • Hex: use the characters 0-9 and A-F to represent the hexadecimal value of each byte; for example, 3A.
  • UU: use the UNIX UUencode algorithm to convert the data.
  • Base64: use the Base64 algorithm to convert the data, as specified by IETF RFC 2045, at www.ietf.org/rfc/rfc2045.txt.

Usage

Binary objects and, in some cases, 8-bit characters, cannot be transported over many Internet protocols, such as HTTP and SMTP, and might not be supported by some database systems. By Binary encoding the data, you convert the data into a format that you can transfer over any Internet protocol or store in a database as character data. To convert the data back to a binary format, use the BinaryDecode function.

Macromedia recommends that you use the BinaryEncode function, and not the ToBase64(binarydata) function, to convert binary data to Base64 data in all new applications.

This function provides a superset of the functionality of the ToBase64(binarydata) function.

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

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>

ColdFusion 9 | ColdFusion 8 | ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX | Forums | Developer Center | KnowledgeBase | Bug Reporting

Version 7

Comments


mattdrayer said on Dec 15, 2006 at 2:06 PM :
Hi there,

Wondering if someone can elaborate on why Adobe recommends the usage of BinaryEncode() over toBase64(). We use tb64() as part of our data transmission algorithm, and a performance gain is always appreciated.

Thanks,

Matt
halL said on Dec 20, 2006 at 7:14 AM :
In response to mattdrayer
There is no efficiency difference between the two techniques.
I'd guess that we recommend using BinaryEncode because it is a superset of ToBase64, but you can use either.
SupremeGopher said on Aug 21, 2007 at 6:43 PM :
If you are wanting to convert a string to hex and back try the following:

String to Hex:

binaryEncode(toBinary(toBase64(value)),'hex')

Hex to String:

toString(toBinary(toBase64(binaryDecode(value,'hex'))))

 

RSS feed | Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/coldfusion/7/htmldocs/00000404.htm