1
使用Node.js v5.1.0,我試圖確定緩衝區的內容長度。因此,我這樣做:Buffer.byteLength返回截然不同的字節長度
Buffer.byteLength(self.data, 'utf8')
其中self.data
看起來是這樣的:
<Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 f0 00 f0 00 00 ff db 00 43 00 05 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0c 08 07 07 07 07 0f 0b 0b 09 ... >
我加載文件系統上的109055個字節(KB 111在磁盤上)的圖像(OS X),但我的內容長度計算返回198,147字節。如果我將編碼設置爲ascii
,則返回104,793字節。更接近,但仍然不正確。
我是否正確計算?我是否需要對緩衝區執行某些操作才能使其返回正確的值?如果我做得對,爲什麼差距?如果我做錯了,那麼請分享;)
難道你不是指'self.data.byteLength'嗎? – Amit
哈!是的,這完全有效。謝謝。如果你願意,把它作爲答案扔進去?如果你知道爲什麼另一種方式存在,工作,但返回錯誤的值,這將是超級;) – brandonscript
[Buffer.byteLength](https://nodejs.org/api/buffer.html#buffer_class_method_buffer_bytelength_string_encoding)預計字符串作爲第一個參數,而不是一個緩衝區,所以也許有一個轉換正在進行,它會混淆。數據是否在'self.data'文本中? –