我收到了关于编码字符串的上一个问题的this answer。我希望在提出这个问题时,可以采用一种可逆的方式在字符串及其表示形式之间转换,如Python 3中的字节数组。
我遇到了一个特定的Uint8Array的问题:
var encoder = new TextEncoder();
var decoder = new TextDecoder(encoder.encoding);
var s = [248, 35, 45, 41, 178, 175, 190, 62, 134, 39];
var t = Array.from(decoder.decode(encoder.encode(Uint8Array(s)));
我预计t
的值为[248, 35, 45, 41, 178, 175, 190, 62, 134, 39]
。相反,它是[239, 191, 189, 35, 45, 41, 239, 191, 189, 239, 191, 189, 239, 191, 189, 62, 239, 191, 189, 39]
。发布答案的人暂时被暂停了,所以我无法通过评论他的答案来解决这个问题。
答案 0 :(得分:2)
将var t = Array.from(decoder.decode(encoder.encode(Uint8Array(s)));
更改为
var t = JSON.parse('['+decoder.decode(encoder.encode(new Uint8Array(s)))+']');
。
var encoder = new TextEncoder();
var decoder = new TextDecoder(encoder.encoding);
var s = [248, 35, 45, 41, 178, 175, 190, 62, 134, 39];
var t = JSON.parse('['+decoder.decode(encoder.encode(new Uint8Array(s)))+']');
console.log(t);