Base64 Encoding / Decoding in Node.js
2014-11-04 15:00
435 查看
Posted on April 20th, 2012 under Node.js
Tags: ASCII, Buffer, Encoding, node.js, UTF
So how do you encode a string to base64 is Node.js? Is there something easy like
Node.js
'being' JavaScript, has a more logical approach to encoding strings,
instead of having thousands of inconsistently defined global functions.
Here is how you encode normal text to base64 in Node.js:
And here is how you decode base64 encoded strings:
If you are interested in the details of how the above examples worked, follow me.
The
By passing the second parameter, we tell JavaScript that "the string you see is encoded in this particular format". Notice how we did that in the decoding example.
Once we have the encoded string, we call the
Let's encode a base64 encoded string to hex:
Now decode it to something humans can read:
Once you get the basics of Buffer and encoding, you can use your knowledge of the File System module to encode files to base64 strings.
In this well-commented example we convert an image to base64 encoded string, and re-generate a copy of the image from the base64 encoded string.
Fascinating?
I am sure you learnt not only how to encode and decode base64, but in many other formats as well. Have fun with encoding!
PS: utf8 is the superset of ascii. If you are limited to using characters on the standard English keyboard, you can use ascii; if you are dealing with 'exotic' characters and symbols like ⌘, こんにちは, Üdvözöljük etc., use utf.
Tags: ASCII, Buffer, Encoding, node.js, UTF
So how do you encode a string to base64 is Node.js? Is there something easy like
base64_encode()of PHP's?
Node.js
'being' JavaScript, has a more logical approach to encoding strings,
instead of having thousands of inconsistently defined global functions.
Here is how you encode normal text to base64 in Node.js:
var b = new Buffer('JavaScript'); var s = b.toString('base64'); // SmF2YVNjcmlwdA==
And here is how you decode base64 encoded strings:
var b = new Buffer('SmF2YVNjcmlwdA==', 'base64') var s = b.toString(); // JavaScript
If you are interested in the details of how the above examples worked, follow me.
The
new Buffer()constructor requires a number, array or string as the first parameter, and an optional encoding type as the second parameter. The possible encoding types are ascii, utf8, ucs2, base64, binary, and hex; the default being utf8.
By passing the second parameter, we tell JavaScript that "the string you see is encoded in this particular format". Notice how we did that in the decoding example.
Once we have the encoded string, we call the
toString()method on the string. If we don't pass the encoding type to
toString(), JavaScript assumes we want to convert the object to utf8 encoded string by default. We can make it convert to other formats by passing the encoding type to
toString().
Let's encode a base64 encoded string to hex:
var b = new Buffer('SmF2YVNjcmlwdA==', 'base64') var s = b.toString('hex'); // 4a617661536372697074
Now decode it to something humans can read:
var b = new Buffer('4a617661536372697074', 'hex') var s = b.toString('utf8'); // JavaScript
Once you get the basics of Buffer and encoding, you can use your knowledge of the File System module to encode files to base64 strings.
In this well-commented example we convert an image to base64 encoded string, and re-generate a copy of the image from the base64 encoded string.
var fs = require('fs'); // function to encode file data to base64 encoded string function base64_encode(file) { // read binary data var bitmap = fs.readFileSync(file); // convert binary data to base64 encoded string return new Buffer(bitmap).toString('base64'); } // function to create file from base64 encoded string function base64_decode(base64str, file) { // create buffer object from base64 encoded string, it is important to tell the constructor that the string is base64 encoded var bitmap = new Buffer(base64str, 'base64'); // write buffer to file fs.writeFileSync(file, bitmap); console.log('******** File created from base64 encoded string ********'); } // convert image to base64 encoded string var base64str = base64_encode('kitten.jpg'); console.log(base64str); // convert base64 string back to image base64_decode(base64str, 'copy.jpg');
Fascinating?
I am sure you learnt not only how to encode and decode base64, but in many other formats as well. Have fun with encoding!
PS: utf8 is the superset of ascii. If you are limited to using characters on the standard English keyboard, you can use ascii; if you are dealing with 'exotic' characters and symbols like ⌘, こんにちは, Üdvözöljük etc., use utf.
相关文章推荐
- Base64 Encoding / Decoding in Node.js
- Node.js Base64 Encoding和Decoding
- Pitfall in node crypto and base64 encoding
- Node.js:util.inherits 面向对象特性【原型】
- How to encode decode String in Java base64 Encoding
- Encoding and decoding problem in speex 1.0.4
- Code:关于加密解密 Base64 and URL and Hex Encoding and Decoding
- nodejs in windows
- Using HTTP Proxy in Node.js with request package
- How to Use Buffers in Node.js
- 【Coffee】Nodejs and CoffeeScript installation in windows
- Node.js liveinjs-gbk 模块 实践总结(一):javascript 的位运算.
- URL Encoding/Decoding in C
- nodejs error getaddrinfo ENOTFOUND in dns.js
- node.js  中 util.inherits
- 京JS 2013 - A two-day conference in Beijing for the JavaScript and Node.js community
- Callback in NodeJS
- A Simple MVC Setup In Node.JS
- Base64 encoding and decoding files with POCO
- Node.js in ubuntu