XMLHttpRequest responseText到arrayBuffer,unicode U + FFFD
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XMLHttpRequest responseText到arrayBuffer,unicode U + FFFD相关的知识,希望对你有一定的参考价值。
呼叫的responseText充满了替换unicode字符(U + FFFD) 。我无法将responseType设置为arraybuffer。 Answer where responseType can be set as 'arraybuffer'
有没有办法恢复已经转换为String的原始二进制文件(原始数据)?
console.log(xhr.responseText); // 'at�'
console.log(xhr.responseText.codePointAt(0)); // '97'
console.log(xhr.responseText.codePointAt(1)); // '116'
console.log(xhr.responseText.codePointAt(2)); // '65533'
1)通过javascript将数据转换为String时数据是否丢失?
要么
2)数据是否像String一样安全,但我还没有找到正确的方法将其解码为二进制/十六进制/十进制? (在这种情况下,数据很好但是在打印时它只显示替换字符。)
我很难处理同样的问题。我不知道正确的解决方案,但有一件事我肯定知道,当你拥有那个 ufffd字符时,你的数据就会消失,你无法发现它是什么,你应该在这之前解决问题。 ...我还使用wireshark来检查我实际收到的数据,并且收到的数据是正确的,所以问题可能发生在XMLHttpRequest对象周围!
这似乎是同样的问题,我回答:https://stackoverflow.com/a/52110487/7354469
简而言之,
1)通过Javascript将数据转换为String时数据是否丢失?
不仅是javascript,很多
Text Decoder
都会导致数据丢失。
2)数据是否像String一样安全,但我还没有找到正确的方法将其解码为二进制/十六进制/十进制? (在这种情况下,数据很好但是在打印时它只显示替换字符。)
严格来说,数据并不安全。
但你可以绕过一些技巧。 (请参阅上面我已回答的链接。)
此外,它在性能上并不是一个好主意。
以上是关于XMLHttpRequest responseText到arrayBuffer,unicode U + FFFD的主要内容,如果未能解决你的问题,请参考以下文章