将Javascript Uint8Array的内容打印为原始字节
Printing the contents of a Javascript Uint8Array as raw bytes
我有一个Javascript中的Uint8Array,我想将其内容打印到控制台,例如
255, 19, 42, 0
这是我的代码,它当前打印一个空字符串
var bytes = new Uint8Array(data);
var debugBytes = "";
for(var i=0; i<bytes.byteLength; i++) {
debugBytes.concat(bytes[i].toString());
debugBytes.concat(",");
}
console.log('Processing packet [' + bytes[1] + '] ' + debugBytes);
如果我设置了一个断点,我可以在调试器中看到数据,所以字节肯定会被填满。当我尝试通过另一种方法打印时,它将所有字节转换为ASCII,但我的数据大多在ASCII可打印范围之外。
在JavaScript中有类似printf()的功能吗?
concat
方法的作用不像可以附加到的缓冲区,而是返回一个新字符串。
因此,您必须在每次调用时将concat
的结果分配给您的结果字符串:
debugBytes = debugBytes.concat(bytes[i].toString());
debugBytes = debugBytes.concat(",");
这样实现,debugBytes
字符串最终将包含一个以逗号分隔的字节值列表。
一个更简洁的解决方案是将Uint8Array
转换为常规Javascript数组,然后使用join
方法:
console.log(Array.apply([], bytes).join(","));
在当前的ECMAScript标准中没有printf
方法,但是有许多自定义实现。请参阅此问题以获取一些建议。
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用javascript将动态表从一个html页面打印到另一个html页
- JavaScript打印功能使日历停止工作
- esri javascript异步打印
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 使用jQuery从原始页面内容创建iframe
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- jQuery/JavaScript在线公文包表单-打印样式表
- 如何打印嵌套对象的所有值
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 打印预览没有应用程序页眉和页脚的html表格
- 正在打印图表上的文本
- Rhino打印功能
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 原始javascript将json对象中的项目打印到列表中的屏幕上
- 当我附加XSS过滤后的html时,它会打印原始html
- 拖动原始图像时打印图像的副本
- 在纸张上打印原始尺寸的导出 svg.js
- 将Javascript Uint8Array的内容打印为原始字节
- 原始数据打印,无需来自PHP / JAVASCRIPT的对话框