小白请教“关于Buffer的toString”的问题

2013-07-26 21:14:19 +08:00
 huazhouji
在REPL下:
> new Buffer('abc')
<Buffer 61 62 63>
想知道这个 61 62 63 叫做啥编码?
然后有啥function可以输入一个字符串,输出对应的这堆 61 62 63 。。。。

白天自己尝试了一下:
var buf = new Buffer('abc');
var util = require('util');

var arr = util.inspect(buf).replace(/<Buffer /,'').replace(/>/,'').split(/\s+/);

var ret = '';
arr.map(function(e,i){
ret += ' ' + e;
});

console.log(ret);
这样子可以得到,不过发现输入的字符串长度超过一定length后,输出就变成这样了:
61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 ...
最后有 ...

请教高手怎么得到完整的结果呢?
4103 次点击
所在节点    Node.js
8 条回复
sharpnk
2013-07-26 21:31:04 +08:00
> 想知道这个 61 62 63 叫做啥编码?

ASCII

试试:

var buf = new Buffer('abc', 'utf-8');
willwen
2013-08-01 09:23:09 +08:00
Buffer放的是二进制数据。http://nodejs.org/api/buffer.html#buffer_buffer
mrluanma
2013-08-01 10:52:11 +08:00
mrluanma
2013-08-01 10:54:41 +08:00
试着只贴一个 gist 连接貌似不行: https://gist.github.com/mrluanma/7fa587dfb46eb864df64

var buf = new Buffer(new Array(100).join('abc'));

var arr = new Array();

for (var i = 0; i < buf.length; i++) {
arr.push(buf[i].toString(16));
}

console.log(arr.join(' '));
mrluanma
2013-08-01 11:04:16 +08:00
coolicer
2013-08-01 14:20:47 +08:00
一样的头像,好巧。
anheiyouxia
2013-08-02 00:04:25 +08:00
@coolicer 你们在一起吧~~~^_^
huazhouji
2013-08-02 08:19:11 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/77084

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX