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, encoding)  | 
   
See also
BinaryEncode, CharsetEncode, CharsetDecode
History
ColdFusion (2021 release): Introduced encoding base64Url
ColdFusion (2018 release): Introduced named parameters.
ColdFusion MX 7: Added this function.
Parameters
Parameter  | 
    Description  | 
   
|---|---|
string  | 
    A string containing encoded binary data.  | 
   
encoding  | 
    A string that specifies the algorithm used to encode the original binary data into a string; must be one of the following: 
  | 
   
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:
Example
<cfscript>
function base64ToHex( String base64Value ){
        var binaryValue = binaryDecode( base64Value, "base64" );
        var hexValue = binaryEncode( binaryValue, "hex" );
        return( lcase( hexValue ) );
    }
    function base64ToString( String base64Value ){
        var binaryValue = binaryDecode( base64Value, "base64" );
        var stringValue = toString( binaryValue );
        return( stringValue );
    }
    function hexToBase64( String hexValue ){
        var binaryValue = binaryDecode( hexValue, "hex" );
        var base64Value = binaryEncode( binaryValue, "base64" );
        return( base64Value );
    }
    function hexToString( String hexValue ){
        var binaryValue = binaryDecode( hexValue, "hex" );
        var stringValue = toString( binaryValue );
        return( stringValue );
    }
    function stringToBase64( String stringValue ){
        var binaryValue = stringToBinary( stringValue );
        var base64Value = binaryEncode( binaryValue, "base64" );
        return( base64Value );
    }
    function stringToBinary( String stringValue ){
        var base64Value = toBase64( stringValue );
        var binaryValue = toBinary( base64Value );
        return( binaryValue );
    }
    function stringToHex( String stringValue ){
        var binaryValue = stringToBinary( stringValue );
        var hexValue = binaryEncode( binaryValue, "hex" );
        return( lcase( hexValue ) );
    }
    // ------------------------------------------------------ //
    // ------------------------------------------------------ //
    // ------------------------------------------------------ //
    // ------------------------------------------------------ //
    // Let's create a string value to test with.
    message = "GoodMorning! What's Up?";
    writeOutput( "Original :: " & message );
    writeOutput( "<br />" );
    // Now, let's check to the String-to-XXX conversions.
    writeOutput( "<br />" );
    messageAsHex = stringToHex( message );
    writeOutput( "Hex :: " & messageAsHex );
    writeOutput( "<br />" );
    messageAsBase64 = stringToBase64( message );
    writeOutput( "Base64 :: " & messageAsBase64 );
    writeOutput( "<br />" );
    messageAsBinary = stringToBinary( message );
    writeOutput( "Binary :: B" & arrayLen( messageAsBinary ) );
    writeOutput( "<br />" );
    
</cfscript>
		
	
Output:
Original :: GoodMorning! What's Up?
Hex :: 476f6f644d6f726e696e6721205768617427732055703f
Base64 :: R29vZE1vcm5pbmchIFdoYXQncyBVcD8=
Binary :: B23
Example 2
<cfscript> 
    longString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@##$%^&*()_+=-{}[]|\:;""'<>?,./"; 
    binaryString = toBinary(toBase64(longString)); 
    //encode binary data 
    encodedBinaryData = binaryEncode(binaryString, "Base64Url");        
    writedump(encodedBinaryData); 
    //decode the encoded binary data 
    decodedBinaryData = binaryDecode(encodedBinaryData, "Base64Url");   
    //verify if the decoded binary data is the same as the source binary data 
    writeOutput("<br/>") 
    if(toString(binaryString) eq toString(decodedBinaryData)) 
    { 
        writeoutput("binaryEncode/binaryDecode of a long string is OK"); 
    } 
    else 
    { 
        writeoutput("binaryEncode/binaryDecode of a long string is NOT OK"); 
    } 
</cfscript>
		
	
Output
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjEyMzQ1Njc4OTBgfiFAIyQlXiYqKClfKz0te31bXXxcOjsiJzw-PywuLw
binaryEncode/binaryDecode of a long string is OK
