如何将二进制数据从binaryjs转换为字符串/文本
How to convert binary data from binaryjs to string / text
My BinaryJS Web客户端接收二进制数据,如何将其转换回服务器发送的文本输入?
创建Websocket的服务器(使用NodeJS)使用BinaryJS,因为它可以将数据作为流传输,我想使用Websocket流将数据转发到客户端。
web客户端看起来如下:
<html>
<head>
<script src="http://cdn.binaryjs.com/0/binary.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script src="text-encoding/lib/encoding.js"></script>
<script src="decode.js"></script>
<script>
// Connect to Binary.js server
var client = new BinaryClient('ws://localhost:9000');
// Received new stream from server!
client.on('stream', function(stream, meta){
// Buffer for parts
// Got new data
stream.on('data', function(data){
$( ".inner" ).append(data+"<br />");
});
stream.on('end', function(){
});
});
</script>
</head>
<body>
<div class="inner">Output:</div>
</body>
</html>
遗憾的是,我的输出不是输入文本,而是像这样的东西:
[object ArrayBuffer]
编辑:找到了一个可能的解决方案:
由于数据是UTF-8编码的,我可以简单地使用别人在另一个问题中发布的函数对其进行解码:
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint8Array(buf));
}
这里有两种情况:
我想你指的是这个问题:Javascript 中的Uint8Array到字符串
注意,那里的fromCharCode
答案明确表示它没有正确地解码UTF8。您最好的选择是使用FileReader解码ArrayBuffer。您在data
处理程序中也错误地处理了此内容,而不是应该先聚合它。
client.on('stream', function(stream, meta){
var parts = [];
stream.on('data', function(data){
parts.push(data);
});
stream.on('end', function(){
var blob = new Blob(parts);
var reader = new FileReader();
reader.onload = function(){
$( ".inner" ).append(reader.result + "<br />");
};
reader.readAsText(blob);
});
});
话虽如此,我的实际建议是在这种情况下不要使用Binary.js
。它的全部目的是传输二进制数据。如果您计划传输大部分文本,则应该考虑使用更多面向文本的库,如Socket.IO.
相关文章:
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 将JSON插入MongoDB中,自动转换字符串中的日期
- 以点表示法转换字符串以获取对象引用
- 在 JavaScript 中转换字符串 11/28/2014 11:00 AM 到现在
- 为什么在主干的字符串数组中转换字符串数组
- 如何简单地转换字符串
- AngularJS如何转换字符串“;yyyyMMdd”;迄今为止
- 如何防止htmlspecialchar(PHP)转换字符串中的整数
- 刷新Aurelia中的i18n转换字符串插值
- 发布时禁用转换字符串
- 转换字符串货币
- 在javascript ajax调用中转换字符串到数组
- 转换字符串包含时间到24小时的时间,我可以做数学与- jQuery
- IE javascript引擎在转换字符串到日期时呈现NaN
- 如何转换字符串“a,b,c,d……”成a.b (c, d . .);来执行
- 如何在javascript中转换字符串到日期格式
- 如何在嵌套数组中转换字符串数组
- 在javascript中转换字符串日期
- 转换字符串在印度格式的javascript
- Javascript转换字符串到数组的对象