자바스크립트에서 BOM 검사 / js 에서 bom 검사 / bom 체크 / check /
js에서 BOM(byte order marker) 검사
다음 코드는 앞의 10 byte 만 가져와서 BOM 을 확인하는 code이다.
function _isUtf8(file, callback) {
const slice = file.slice(0, 10)
const fr = new FileReader()
fr.onload = (e) => {
// e.target.result : ArrayBuffer
const view = new Uint8Array(e.target.result)
// EF BB BF
// 0xef, 0xbb, 0xbf
let isUtf = false
if (view[0] === 239 && view[1] === 187 && view[2] === 191) {
isUtf = true
} else {
// do nothing
isUtf = false
// console.error('File has byte order mark (BOM)')
}
callback(isUtf)
}
fr.readAsArrayBuffer(slice)
}
async/await version
// asyn/await version
function _isUtf8(file, callback) {
const slice = file.slice(0, 10)
const fr = new FileReader()
const promise = new Promise(function (resolve, reject) {
fr.onload = (e) => {
// e.target.result : ArrayBuffer
const view = new Uint8Array(e.target.result)
// EF BB BF
// 0xef, 0xbb, 0xbf
let isUtf = false
if (view[0] === 239 && view[1] === 187 && view[2] === 191) {
isUtf = true
} else {
// do nothing
isUtf = false
// console.error('File has byte order mark (BOM)')
}
resolve(isUtf)
}
})
fr.readAsArrayBuffer(slice)
return promise
}
댓글 없음:
댓글 쓰기