본문 바로가기

BackEnd/Linux

Notepad로 UTF-8 BOM 문제 해결하기

 

 

UTF-8 인코딩으로 저장된 스크립트 파일에서 $'\357\273\277cd와 같은 오류 메시지가 발생한 적이 있나요?

스크립트 파일을 작성하여 실행 중에... 이런 오류가 있어서 하루를 날려버렸습니다.

언제쯤 삽질은 안하게 될까요? 하하하

 

이 오류는 주로 파일의 시작 부분에 포함된 BOM(Byte Order Mark) 때문입니다.

BOM은 파일의 인코딩 방식을 표시하는 특수 문자로,

쉘 스크립트와 같은 텍스트 파일에서 문제가 발생할 수 있습니다. 

문제의 원인

 

BOM(Byte Order Mark)은 파일의 시작 부분에 붙어 인코딩 방식을 표시합니다. UTF-8로 저장된 파일이 BOM을 포함하고 있으면 쉘에서 BOM 문자를 불필요한 문자로 인식하여 오류가 발생할 수 있습니다. 이 경우, 스크립트가 올바르게 실행되지 않고 cd 명령어가 잘못 해석되는 등의 문제가 발생합니다.

해결 방법: Notepad를 사용한 BOM 제거

 

 

Notepad를 사용하여 BOM을 제거해주세요.

수정 전에 인코딩 메뉴를 열었을 때 UTF-8 BOM으로 선택 되어있어서 식은 땀이 났답니다.

인코딩 옵션에서 UTF-8을 선택합니다.

BOM이 포함되지 않은 UTF-8로 파일을 저장만 해주면 됩니다-!

 

추가 방법: BOM 확인 및 제거

만약 파일에 BOM이 포함되어 있는지 확인하고 싶다면

hexdump와 같은 도구를 사용하여 파일의 내용을 검사할 수 있습니다.

BOM은 일반적으로 EF BB BF로 나타납니다.

 

hexdump -c script.sh | head