

We then call "toString" method on the buffer object that we just created and passed it "base64" as a parameter. In the above script we create a new buffer object and pass it our string that we want to convert to Base64. Let base64data = buff.toString( 'base64') Ĭonsole.log( '"' + data + '" converted to Base64 is "' + base64data + '"')

Character set for base64 encoding code#
Save the following code in a file "encode-text.js" 'use strict' Here we will encode a text string to Base64 using Buffer object. As you write code that deals with and manipulates data, you'll likely be using the Buffer object at some point. These include to/from UTF-8, UCS2, Base64 or even Hex encodings. Internally Buffer is an immutable array of integers that is also capable of performing many different encodings/decodings. In Node.js, Buffer is a global object which means that you do not need to use require statement in order to use Buffer object in your applications. The easiest way to encode Base64 strings in Node.js is via the Buffer object. This is where Base64 encoding comes extremely handy in converting binary data to the correct formats. Therefore, if you want to send images or any other binary file to an email server you first need to encode it in text-based format, preferably ASCII. On the other hand, the ASCII character set is widely known and very simple to handle for most systems.įor instance email servers expect textual data, so ASCII is typically used. Sending information in binary format can sometimes be risky since not all applications or network systems can handle raw binary. You can use any online text to Base64 converter to verify this result. Using this encoding table we can see that the string "Go win" is encoded as "R28gd2lu" using Base64. Here you can see that decimal 17 corresponds to "R", and decimal 54 corresponds to "2", and so on. These decimal values have been given below: Binary Decimal Now for each chunk above, we have to find its decimal value.
Character set for base64 encoding full#
You won't always be able to divide up the data in to full sets of 6 bits, in which case you'll have to deal with padding.

Note that some implementations of Base64 uses different special characters than "+" and "/".Ĭoming back to the example, let us break our 8 bit data into chunks of 6 bits. This is because Base64 format only has 64 characters: 26 uppercase alphabet letters, 26 lowercase alphabet letters, 10 numeric characters, and the "+" and "/" symbols for new line.īase64 doesn't use all the ASCII special characters, but only these few. However as we said earlier, Base64 converts the data in 8 bit binary form to chunks of 6 bits. You can see here that each character is represented by 8 bits. The first step is to convert this string into binary. Suppose we have string "Go win" and we want to convert it into Base64 string. Find the Base64 symbol for each of the decimal values via a Base64 lookup tableįor a better understanding of this concept, let's take a look at an example.Find the decimal version of each of the 6 bit binary chunk.Re-group the 8 bit version of the data into multiple chunks of 6 bits.Calculate the 8 bit binary version of the input text.Here is how it works for strings of text: How Does Base64 Work?Ĭonverting data to base64 is a multistep process. In fact, size of a Base64 encoded piece of information is 1.3333 times the actual size of your original data.īase64 is the most widely used base encoding technique with Base16 and Base32 being the other two commonly used encoding schemes. It is important to mention here that Base64 is not an encryption or compression technique, although it can sometimes be confused as encryption due to the way it seems to obscure data. Base64 encoding is a way to convert data (typically binary) into the ASCII character set.
