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