Dav*_*ell 2 javascript encoding buffer readfile node.js
考虑以下 Node.js Javascript 程序:
var fs = require('fs');
var encoding1='?';
var encoding2='?';
var a = fs.readFileSync('./testdoc.pdf');
var b = new Buffer(fs.readFileSync('./testdoc.pdf',encoding1),encoding2);
console.log(a===b);
Run Code Online (Sandbox Code Playgroud)
必须将encoding1和encoding2变量设置为什么值才能在控制台上打印true ?
a.equals(b)对于像 PDF 这样的二进制数据,您应该使用"binary"编码,但任何编码都不会使任何两个缓冲区与===运算符相等,因此a === b将始终为您提供false. 您需要用来a.equals(b)测试两个缓冲区是否具有相同的内容。
请参阅buf.equals(otherBuffer)文档:
看这段代码:
var fs = require('fs');
var encoding1 = 'binary';
var encoding2 = 'binary';
var a = fs.readFileSync('./testdoc.pdf');
var b = new Buffer(fs.readFileSync('./testdoc.pdf', encoding1), encoding2);
console.log('Object equality:', a === b);
console.log('Buffer equality:', a.equals(b));
Run Code Online (Sandbox Code Playgroud)
它将打印:
Object equality: false
Buffer equality: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12518 次 |
| 最近记录: |