我有一个通过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();
答案 0 :(得分:1)
这完全取决于您要向其中发送的数据类型。 8位适用于ASCII字符等。 16位用于UCS-2。 32位用于UTF-32,您不必使用它,因为它用于边缘情况。 Windows几乎没有这种用法,Unix有时仅在内部应用程序中使用它。