自己做的网站如何链接到百度,wordpress怎么用,建设网站注册会员,做网站和优化的公司1、获取文件二进制数据#xff0c;这里只做示例#xff0c;例如element-ui中文件上传的beforeUpload方法#xff0c;返回的file对象#xff0c;然后使用FileReader对其进行转换#xff0c;再进行后续判断
function beforeUpload(file: File) { const reader new FileRe…1、获取文件二进制数据这里只做示例例如element-ui中文件上传的beforeUpload方法返回的file对象然后使用FileReader对其进行转换再进行后续判断
function beforeUpload(file: File) { const reader new FileReader();reader.readAsArrayBuffer(file);reader.onload function (e: any) {// 等待file文件对象转换完成}
}
2、将二进制数据处理为无符号整数也就是处理为字节
reader.onload function (e: any) {const btyes new Uint8Array(e.target.result)console.log(btyes);if (isUTF8(btyes)) {console.log(utf-8);} else {console.log(GBK);}
}
3、isUTF8函数
// 判断文件编码格式的函数
function isUTF8(bytes) {var i 0;while (i bytes.length) {if ((// ASCIIbytes[i] 0x09 ||bytes[i] 0x0A ||bytes[i] 0x0D ||(0x20 bytes[i] bytes[i] 0x7E))) {i 1;continue;}if ((// non-overlong 2-byte(0xC2 bytes[i] bytes[i] 0xDF) (0x80 bytes[i 1] bytes[i 1] 0xBF))) {i 2;continue;}if ((// excluding overlongsbytes[i] 0xE0 (0xA0 bytes[i 1] bytes[i 1] 0xBF) (0x80 bytes[i 2] bytes[i 2] 0xBF)) ||(// straight 3-byte((0xE1 bytes[i] bytes[i] 0xEC) ||bytes[i] 0xEE ||bytes[i] 0xEF) (0x80 bytes[i 1] bytes[i 1] 0xBF) (0x80 bytes[i 2] bytes[i 2] 0xBF)) ||(// excluding surrogatesbytes[i] 0xED (0x80 bytes[i 1] bytes[i 1] 0x9F) (0x80 bytes[i 2] bytes[i 2] 0xBF))) {i 3;continue;}if ((// planes 1-3bytes[i] 0xF0 (0x90 bytes[i 1] bytes[i 1] 0xBF) (0x80 bytes[i 2] bytes[i 2] 0xBF) (0x80 bytes[i 3] bytes[i 3] 0xBF)) ||(// planes 4-15(0xF1 bytes[i] bytes[i] 0xF3) (0x80 bytes[i 1] bytes[i 1] 0xBF) (0x80 bytes[i 2] bytes[i 2] 0xBF) (0x80 bytes[i 3] bytes[i 3] 0xBF)) ||(// plane 16bytes[i] 0xF4 (0x80 bytes[i 1] bytes[i 1] 0x8F) (0x80 bytes[i 2] bytes[i 2] 0xBF) (0x80 bytes[i 3] bytes[i 3] 0xBF))) {i 4;continue;}return false;}return true;
}