λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ–₯️ 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