相关疑难解决方法(0)

JSON字符串中的二进制数据.比Base64更好的东西

JSON格式本身不支持二进制数据.必须对二进制数据进行转义,以便可以将其放入JSON中的字符串元素(即使用反斜杠转义的双引号中的零个或多个Unicode字符).

转义二进制数据的一个明显方法是使用Base64.但是,Base64具有很高的处理开销.它还将3个字节扩展为4个字符,从而使数据量增加了大约33%.

一个用例是CDMI云存储API规范的v0.8草案.您可以使用JSON通过REST-Webservice创建数据对象,例如

PUT /MyContainer/BinaryObject HTTP/1.1
Host: cloud.example.com
Accept: application/vnd.org.snia.cdmi.dataobject+json
Content-Type: application/vnd.org.snia.cdmi.dataobject+json
X-CDMI-Specification-Version: 1.0
{
    "mimetype" : "application/octet-stream",
    "metadata" : [ ],
    "value" :   "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
    IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
    dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
    dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
    ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=",
}
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法和标准方法将二进制数据编码为JSON字符串?

base64 json

581
推荐指数
10
解决办法
45万
查看次数

UTF-8可以包含零字节吗?

UTF-8字符串可以包含zerobytes吗?我将通过ascii明文协议发送它,我应该用base64编码吗?

unicode

55
推荐指数
1
解决办法
2万
查看次数

节点缓冲区,从utf8到二进制

utf8从源接收数据,这些数据最初是二进制形式(它是a Buffer).我必须将这些数据转换回来Buffer.我很难搞清楚如何做到这一点.

这是一个显示我的问题的小样本:

var hexString = 'e61b08020304e61c09020304e61d0a020304e61e65';
var buffer1 = new Buffer(hexString, 'hex');

var str = buffer1.toString('utf8');
var buffer2 = new Buffer(str, 'utf8');

console.log('original content:', hexString);
console.log('buffer1 contains:', buffer1.toString('hex'));
console.log('buffer2 contains:', buffer2.toString('hex'));
Run Code Online (Sandbox Code Playgroud)

版画

original content: e61b08020304e61c09020304e61d0a020304e61e65
buffer1 contains: e61b08020304e61c09020304e61d0a020304e61e65
buffer2 contains: efbfbd1b08020304efbfbd1c09020304efbfbd1d0a020304efbfbd1e65
Run Code Online (Sandbox Code Playgroud)

在这里,我想buffer2与之完全相同buffer1.

如何将utf8字符串转换为其原始二进制文件Buffer

encoding buffer utf-8 node.js

4
推荐指数
1
解决办法
4934
查看次数

标签 统计

base64 ×1

buffer ×1

encoding ×1

json ×1

node.js ×1

unicode ×1

utf-8 ×1