我有一个应用程序通过 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();
最佳答案
这完全取决于您向其中发送的数据类型。 8 位适用于 ASCII 字符等。 16 位用于 UCS-2。 32 位用于 UTF-32,您不一定会使用它,因为它更适用于边缘情况。 Windows 很少使用它,Unix 有时只在内部应用程序中使用它。
关于javascript - 何时使用 Uint8Array、Uint16Array、Uint32Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54236981/