星空网 > 软件开发 > Java

Node.js Base64 Encoding和Decoding

  如何在Node.js中encode一个字符串呢?是否也像在PHP中使用base64_encode()一样简单?

  在Node.js中有许多encoding字符串的方法,而不用像在JavaScript中那样定义各种不同的全局函数。下面是如何在Node.js中将一个普通字符串encode成Base64格式的代码:

var b = new Buffer('JavaScript');var s = b.toString('base64');// SmF2YVNjcmlwdA==

  下面是decode base64字符串的代码:

var b = new Buffer('SmF2YVNjcmlwdA==', 'base64')var s = b.toString();// JavaScript

  如果你想了解上面代码的实现细节,请接着往下看。

  构造函数new Buffer()的第一个参数可以是一个Number,Array或String。第二个参数为可选参数,用来表示encode的类型,可以是AscII, Utf8, Ucs2, Base64, Binary, 或Hex。默认值是Utf8。

  通过第二个参数,告诉程序给定的字符串是以哪种特定格式被encode的。注意上面decode的例子中我们传入的参数。

  我们通过toString()方法将encode的字符串转换成其它格式,默认为Utf8。指定不同的参数,可以转换成我们想要的格式。例如我们可以将Base64之后的字符串转换成Hex格式:

var b = new Buffer('SmF2YVNjcmlwdA==', 'base64')var s = b.toString('hex');// 4a617661536372697074

  然后通过下面的方式将其decode成人类能看懂的字符串:

var b = new Buffer('4a617661536372697074', 'hex')var s = b.toString('utf8');// JavaScript

  一旦掌握了基本的Buffer和encode,我们就可以通过Node.js的File module将文件encode成Base64字符串。

var fs = require('fs');// function to encode file data to base64 encoded stringfunction 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 stringfunction 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 stringvar base64str = base64_encode('kitten.jpg');console.log(base64str);// convert base64 string back to image base64_decode(base64str, 'copy.jpg');

PS:Utf8是AscII的超集。如果你只能使用标准英文键盘上的字符,则可以使用AscII编码;但是如果你正在处理其它“外来”字符或符号,例如⌘, こんにちは, Üdvözöljük等,请使用Utf。




原标题:Node.js Base64 Encoding和Decoding

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

生产型出口企业转型为外贸企业,要注意这个问题!:https://www.ikjzd.com/articles/1580391581414023170
亚马逊广告活动又添新指标——“new-to-brand”!你注意了吗?:https://www.ikjzd.com/articles/15804
最新!英国VAT政策有变,所有卖家强制执行!:https://www.ikjzd.com/articles/1580400377665495042
紧急!亚马逊要求上传德国WEEE注册号!:https://www.ikjzd.com/articles/1580403007654420481
从数亿营收到亏损退市!这个亚马逊家居大卖能否华丽转身?:https://www.ikjzd.com/articles/1580406617054339073
易出单、利润高,俄罗斯进出口贸易增速No.1,或更适合新卖家:https://www.ikjzd.com/articles/1580433693027295233
自研引擎、中青宝参股,这家上海公司打造了一款派对风的3D社交游戏?:https://www.xlkjsw.com/news/88144.html
退货率不到10%,得物如何做到更接近生意本质?:https://www.kjdsnews.com/a/1840762.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流