Node.js 텍스트 파일 BOM 헤더 제거 방법
바이트 순서 표시(byte order mark)는 코드 포인트 U+FEFF에 있는 통일된 코드 문자의 이름입니다.UCS/유니코드 문자로 구성된 문자열을 UTF-16 또는 UTF-32로 인코딩할 때 이 문자는 바이트 순서를 표시하는 데 사용됩니다.그것은 UTF-8, UTF-16 또는 UTF-32로 인코딩된 표시 파일로 자주 사용된다.
서로 다른 인코딩된 바이트 순서 표시의 표시:
인코딩
표현 (16진수)
표현 (10진수)
UTF8
EF BB BF
239 187 191
UTF-16(대단)
FE FF
254 255
UTF-16(소단자)
FF FE
255 254
UTF-32(대단)
00 00 FE FF
0 0 254 255
UTF-32(소단자)
FF FE 00 00
255 254 0 0
BOM 추가
UTF8 인코딩에는 BOM이 필요하지 않지만 수동으로 UTF8 인코딩 파일에 BOM 헤더를 추가할 수 있습니다
const fs = require('fs');
fs.writeFile('./bom.js', '\ufeffThis is an example with accents : é è à ', 'utf8', function (err) {})
BOM 제거UTF8에 있어서 BOM의 유무는 반드시 필요한 것이 아니다. 왜냐하면 UTF8 바이트는 순서가 없기 때문에 표시할 필요가 없다. 즉, UTF8 파일에 BOM이 있을 수도 있고 BOM이 없을 수도 있다.
인코딩된 BOM에 따라 파일 헤더의 몇 바이트에 따라 파일에 BOM이 포함되어 있는지, 그리고 사용하는 유니코드 인코딩을 판단할 수 있습니다.
BOM 문자는 파일 인코딩을 표시하는 역할을 하지만 그 자체는 파일 내용의 일부분에 속하지 않는다. 텍스트 파일을 읽을 때 BOM을 제거하지 않으면 일부 사용 장면에서 문제가 생길 수 있다.예를 들어 우리가 몇 개의 JS 파일을 하나의 파일로 합친 후에 파일 중간에 BOM 문자가 있으면 브라우저 JS 문법 오류가 발생할 수 있다.따라서 Node를 사용합니다.js가 텍스트 파일을 읽을 때 일반적으로 BOM을 제거해야 합니다.
//
function stripBOM(content) {
// BOM
if (content.charCodeAt(0) === 0xFEFF) {
content = content.slice(1);
}
return content;
}
// Buffer
function stripBOMBuffer(buf) {
if (buf[0] === 0xEF && buf[1] === 0xBB && buf[2] === 0xBF) {
buf = buf.slice(3);
}
return buf;
}
참고여기 Node에 관한 이야기입니다.js 텍스트 파일 BO Mher 제거 글은 여기까지입니다.js 텍스트 파일 BO M헤드 제거 내용은 저희 이전 글을 검색하거나 아래 관련 글을 계속 찾아보세요. 앞으로 많이 사랑해 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.