我有一个应用程序,它通过XMLHttpRequest加载用户文本并以二进制格式返回它。我知道8、16和32之间的主要区别是每个元素的字节数,但我不知道何时使用它们。
例如,对于我的应用程序,由于文本文件实际上可以包含任何可能的字符,那么哪一个最好呢?
我尝试过不同的文件,包括一个带有表情符号的文件,在Uint8Array中,表情符号似乎占据了4个索引。
对于我的使用,有没有什么理由不应该只使用Uint8Array,或者有什么原因我应该动态地选择何时读取文件?我已经阅读了关于每一个的MDN文档,但除了字节大小之外,它似乎并没有提供太多的见解。
下面是我当前用来加载文件的代码:
asset= new XMLHttpRequest();
asset.addEventListener('readystatechange', function load() {
if (asset.readyState == 4 && asset.data.status == 200) {
const arrayBuffer = asset.data.response;
if (arrayBuffer) asset.data = new Uint8Array(arrayBuffer);
}
}.bind(this), false);
// Error handling.
asset.responseType = 'arraybuffer';
asset.open('GET', asset.src);
asset.send();发布于 2019-01-17 21:35:10
这完全取决于您要发送到其中的数据类型。对于ASCII字符和类似字符,8位就足够了。16位用于UCS-2。32位用于UTF-32,您不一定要使用UTF-32,因为它更适合于边缘情况。Windows几乎不使用它,Unix有时只在内部应用程序中使用它。
https://stackoverflow.com/questions/54236981
复制相似问题