λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

μ„œλΈŒλΌμž„ ν…μŠ€νŠΈ ν•œκΈ€ 깨짐(인코딩) 문제 ν•΄κ²°

by 5566 2023. 11. 20.

1. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒμ΄λž€?

ν•œκΈ€λ‘œ μž‘μ„±λœ ν…μŠ€νŠΈλ₯Ό νŽΈμ§‘ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μ„œλΈŒλΌμž„ ν…μŠ€νŠΈ(Sublime Text)λŠ” λ‹€μ–‘ν•œ μ–Έμ–΄μ˜ νŽΈμ§‘κΈ°λ‘œμ„œ 널리 μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 가끔 μ„œλΈŒλΌμž„ ν…μŠ€νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•œκΈ€λ‘œ μž‘μ„±λœ ν…μŠ€νŠΈλ₯Ό νŽΈμ§‘ν•˜λ©΄ κΈ€μžκ°€ κΉ¨μ Έ 보일 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν˜„μƒμ„ "μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒ"이라고 ν•©λ‹ˆλ‹€.

μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒμ€ λ‹€μ–‘ν•œ 원인에 μ˜ν•΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 주둜 인코딩 μ„€μ •μ˜ 뢈일치, ν…μŠ€νŠΈ 파일 μžμ²΄μ— 인코딩 정보가 μ—†λŠ” 경우, νŠΉμ • 폰트 파일이 μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠλŠ” 경우 등이 κ·Έ μ›μΈμœΌλ‘œ 꼽힐 수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ ν˜„μƒμ΄ λ°œμƒν•˜λ©΄ νŽΈμ§‘ 쀑인 ν•œκΈ€ ν…μŠ€νŠΈκ°€ 읽기 μ–΄λ ΅κ±°λ‚˜ μ „ν˜€ μ•Œμ•„λ³΄κΈ° νž˜λ“€κ²Œ ν‘œμ‹œλ  수 μžˆμ–΄ ν…μŠ€νŠΈμ˜ 가독성을 μ €ν•˜μ‹œν‚€λŠ” 문제둜 μž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ΄λŸ¬ν•œ ν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ μ ˆν•œ λŒ€μ‘ 방법을 μ°ΎλŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

λ‹€μŒ ν•­λͺ©μ—μ„œλŠ” μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒμ˜ 원인을 μžμ„Ένžˆ 뢄석해보고, 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ 방법듀에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

2. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 원인 뢄석

μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒμ˜ 원인을 λΆ„μ„ν•΄λ΄…μ‹œλ‹€. λ‹€μŒμ€ μ£Όμš”ν•œ 원인듀에 λŒ€ν•œ μ„€λͺ…μž…λ‹ˆλ‹€.

2.1. 인코딩 μ„€μ •μ˜ 뢈일치

μ„œλΈŒλΌμž„ ν…μŠ€νŠΈλŠ” 기본적으둜 UTF-8 인코딩을 μ‚¬μš©ν•˜λ„λ‘ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ νŽΈμ§‘ 쀑인 ν…μŠ€νŠΈ 파일이 λ‹€λ₯Έ 인코딩 방식(예: EUC-KR, CP949 λ“±)을 μ‚¬μš©ν•˜κ³  μžˆλ‹€λ©΄ ν•œκΈ€μ΄ κΉ¨μ Έ 보일 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” ν…μŠ€νŠΈ 파일의 인코딩 방식과 μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ 섀정이 μΌμΉ˜ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ°œμƒν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

2.2. ν…μŠ€νŠΈ 파일 μžμ²΄μ— 인코딩 정보가 μ—†λŠ” 경우

일뢀 ν…μŠ€νŠΈ νŒŒμΌμ€ 인코딩 정보λ₯Ό λͺ…μ‹œμ μœΌλ‘œ ν¬ν•¨ν•˜κ³  μžˆμ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 이 경우 μ„œλΈŒλΌμž„ ν…μŠ€νŠΈλŠ” ν•΄λ‹Ή νŒŒμΌμ„ μ—΄ λ•Œ μ˜¬λ°”λ₯Έ 인코딩을 μžλ™μœΌλ‘œ κ°μ§€ν•˜μ§€ λͺ»ν•˜κ³ , κΈ°λ³Έ μ„€μ •λœ UTF-8 μΈμ½”λ”©μœΌλ‘œ μ²˜λ¦¬ν•˜λ‹€λ³΄λ‹ˆ ν•œκΈ€μ΄ κΉ¨μ Έ 보이게 λ©λ‹ˆλ‹€.

2.3. 폰트 파일의 λ―Έμ„€μΉ˜

ν•œκΈ€μ΄ μ œλŒ€λ‘œ ν‘œμ‹œλ˜λ €λ©΄ μ„œλΈŒλΌμž„ ν…μŠ€νŠΈκ°€ μ‚¬μš©ν•˜λŠ” 폰트 파일이 ν•„μš”ν•©λ‹ˆλ‹€. λ§Œμ•½ ν•΄λ‹Ή 폰트 파일이 μ‹œμŠ€ν…œμ— μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•Šκ±°λ‚˜ μ„œλΈŒλΌμž„ ν…μŠ€νŠΈκ°€ 폰트 파일의 μœ„μΉ˜λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μΈμ‹ν•˜μ§€ λͺ»ν•œλ‹€λ©΄, ν•œκΈ€μ΄ κΉ¨μ Έ 보일 수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 원인듀이 ν•œκΈ€ 깨짐 ν˜„μƒμ„ λ°œμƒμ‹œν‚¬ 수 있으며, 해결법이 ν•„μš”ν•©λ‹ˆλ‹€. λ‹€μŒ ν•­λͺ©μ—μ„œλŠ” μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•œ 방법듀에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

3. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 해결을 μœ„ν•œ 방법듀

μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ 방법듀을 μ‹œλ„ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ 일반적으둜 νš¨κ³Όκ°€ μžˆμ„ 수 μžˆλŠ” 방법듀에 λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…μž…λ‹ˆλ‹€.

3.1. 인코딩 μ„€μ • μΌμΉ˜μ‹œν‚€κΈ°

인코딩 μ„€μ •μ˜ 뢈일치둜 μΈν•œ ν•œκΈ€ 깨짐 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ 인코딩 섀정을 νŽΈμ§‘ 쀑인 ν…μŠ€νŠΈ 파일의 인코딩 방식과 μΌμΉ˜μ‹œμΌœμ•Ό ν•©λ‹ˆλ‹€.

  1. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ—μ„œ νŽΈμ§‘ν•˜κ³  μžˆλŠ” νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€.
  2. ν•˜λ‹¨μ˜ 인코딩 탭을 ν΄λ¦­ν•˜κ³ , νˆ΄λ°”μ˜ Set Encoding을 μ„ νƒν•©λ‹ˆλ‹€.
  3. μ›ν•˜λŠ” 인코딩 방식(예: EUC-KR, CP949 λ“±)을 μ„ νƒν•©λ‹ˆλ‹€.
  4. ν…μŠ€νŠΈ 파일이 μ˜¬λ°”λ₯Έ 인코딩 μ„€μ •κ³Ό μΌμΉ˜ν•˜κ²Œ 되면 ν•œκΈ€μ΄ μ œλŒ€λ‘œ ν‘œμ‹œλ  κ²ƒμž…λ‹ˆλ‹€.

3.2. 인코딩 정보 μ—†λŠ” 파일의 처리

λ§Œμ•½ ν…μŠ€νŠΈ 파일 μžμ²΄μ— 인코딩 정보가 μ—†λŠ” 경우, μ„œλΈŒλΌμž„ ν…μŠ€νŠΈλŠ” 기본적으둜 UTF-8둜 μ²˜λ¦¬ν•©λ‹ˆλ‹€. 이 경우 ν•œκΈ€μ΄ κΉ¨μ Έ 보일 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” νŒŒμΌμ„ λͺ…μ‹œμ μœΌλ‘œ μ˜¬λ°”λ₯Έ μΈμ½”λ”©μœΌλ‘œ μ—΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.

  1. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ—μ„œ νŽΈμ§‘ν•˜κ³  μžˆλŠ” νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€.
  2. ν•˜λ‹¨μ˜ 인코딩 탭을 ν΄λ¦­ν•˜κ³ , Change Encoding을 μ„ νƒν•©λ‹ˆλ‹€.
  3. μ˜¬λ°”λ₯Έ 인코딩 방식(예: EUC-KR, CP949 λ“±)을 μ„ νƒν•©λ‹ˆλ‹€.
  4. νŒŒμΌμ„ λ‹€μ‹œ νŽΈμ§‘ν•˜λ©΄ ν•œκΈ€μ΄ μ œλŒ€λ‘œ ν‘œμ‹œλ  κ²ƒμž…λ‹ˆλ‹€.

3.3. 폰트 파일 μ„€μΉ˜ 및 μ„€μ •

μ„œλΈŒλΌμž„ ν…μŠ€νŠΈκ°€ ν•œκΈ€μ„ μ œλŒ€λ‘œ ν‘œμ‹œν•˜λ €λ©΄ ν•΄λ‹Ή 폰트 파일이 μ‹œμŠ€ν…œμ— μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 폰트 νŒŒμΌμ„ μ„€μΉ˜ν•˜μ§€ μ•Šμ•˜κ±°λ‚˜ μ„œλΈŒλΌμž„ ν…μŠ€νŠΈκ°€ μ˜¬λ°”λ₯Έ 폰트λ₯Ό 찾지 λͺ»ν•˜λŠ” 경우 ν•œκΈ€μ΄ κΉ¨μ Έ 보일 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. μΈν„°λ„·μ—μ„œ μ›ν•˜λŠ” ν•œκΈ€ 폰트 νŒŒμΌμ„ μ°Ύμ•„ λ‹€μš΄λ‘œλ“œ λ°›μŠ΅λ‹ˆλ‹€.
  2. λ‹€μš΄λ‘œλ“œ 받은 폰트 νŒŒμΌμ„ μ‹œμŠ€ν…œμ— μ„€μΉ˜ν•©λ‹ˆλ‹€.
  3. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈλ₯Ό μ—΄κ³  νŽΈμ§‘ 쀑인 파일의 폰트 섀정을 λ³€κ²½ν•©λ‹ˆλ‹€.
  4. Preferences λ©”λ‰΄μ—μ„œ Settingsλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  5. Font Face μ˜΅μ…˜μ„ μ°Ύμ•„ μ˜¬λ°”λ₯Έ ν•œκΈ€ 폰트 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.
  6. 폰트 섀정을 μ €μž₯ν•˜κ³  νŒŒμΌμ„ λ‹€μ‹œ νŽΈμ§‘ν•˜λ©΄ ν•œκΈ€μ΄ μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œλ  κ²ƒμž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 방법듀을 톡해 μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 ν˜„μƒμ„ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ²½μš°μ— 따라 λ‹€λ₯Έ 해결책도 μžˆμ„ 수 μžˆμœΌλ‹ˆ ν•΄λ‹Ή 상황에 맞게 μ‘°μ ˆν•˜μ—¬ μ‚¬μš©ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

4. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 해결을 μœ„ν•œ 인코딩 μ„€μ • λ³€κ²½ 방법

μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ—μ„œ ν•œκΈ€ 깨짐 ν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” 인코딩 섀정을 λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ‹€μŒμ€ 인코딩 섀정을 λ³€κ²½ν•˜λŠ” 방법에 λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…μž…λ‹ˆλ‹€.

  1. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ—μ„œ νŽΈμ§‘ 쀑인 νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€.
  2. ν•˜λ‹¨μ˜ 인코딩 탭을 ν΄λ¦­ν•©λ‹ˆλ‹€. (λ§Œμ•½ 인코딩 탭이 보이지 μ•ŠμœΌλ©΄, View λ©”λ‰΄μ—μ„œ Show Encoding을 μ²΄ν¬ν•©λ‹ˆλ‹€.)
  3. 인코딩 탭을 ν΄λ¦­ν•˜λ©΄ 인코딩 μ˜΅μ…˜ λͺ©λ‘μ΄ λ‚˜νƒ€λ‚©λ‹ˆλ‹€. 기본적으둜 UTF-8둜 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  4. ν•œκΈ€μ΄ μ œλŒ€λ‘œ ν‘œμ‹œλ˜λ„λ‘ ν•˜λ €λ©΄, μ‚¬μš©ν•˜κ³  μžˆλŠ” ν…μŠ€νŠΈ 파일의 인코딩 방식과 μΌμΉ˜ν•˜λ„λ‘ μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  5. 인코딩 μ˜΅μ…˜ λͺ©λ‘μ—μ„œ μ›ν•˜λŠ” 인코딩 방식을 μ„ νƒν•©λ‹ˆλ‹€. (예: EUC-KR, CP949 λ“±)
  6. 인코딩 μ˜΅μ…˜μ„ μ„ νƒν•˜λ©΄ μ„ νƒν•œ 인코딩 λ°©μ‹μœΌλ‘œ 파일이 λ‹€μ‹œ λ‘œλ“œλ˜κ³  ν•œκΈ€μ΄ μ œλŒ€λ‘œ ν‘œμ‹œλ  κ²ƒμž…λ‹ˆλ‹€.

μ΄λ ‡κ²Œ 인코딩 섀정을 λ³€κ²½ν•˜λ©΄ μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ—μ„œ ν•œκΈ€μ΄ 깨지지 μ•Šκ³  μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œλ  κ²ƒμž…λ‹ˆλ‹€. ν•œκΈ€ 깨짐 ν˜„μƒμ΄ μ—¬μ „νžˆ λ°œμƒν•œλ‹€λ©΄ λ‹€λ₯Έ 해결책을 찾아봐야 ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

5. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ λ‹€λ₯Έ λŒ€μ•ˆλ“€

λ§Œμ•½ 인코딩 섀정을 λ³€κ²½ν•˜λ”λΌλ„ μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ—μ„œ ν•œκΈ€ 깨짐 λ¬Έμ œκ°€ μ—¬μ „νžˆ λ°œμƒν•œλ‹€λ©΄, λ‹€μŒκ³Ό 같은 λ‹€λ₯Έ λŒ€μ•ˆλ“€μ„ μ‹œλ„ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

5.1. 인코딩 μ„€μ • κ°•μ œ λ³€κ²½

  1. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ—μ„œ νŽΈμ§‘ 쀑인 νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€.
  2. λ©”λ‰΄μ—μ„œ File β†’ Save with Encoding을 μ„ νƒν•©λ‹ˆλ‹€.
  3. μ›ν•˜λŠ” 인코딩 방식을 μ„ νƒν•©λ‹ˆλ‹€. (예: EUC-KR, CP949 λ“±)
  4. νŒŒμΌμ„ μ €μž₯ν•˜κ³  λ‹€μ‹œ νŽΈμ§‘ν•˜λ©΄ ν•œκΈ€μ΄ μ œλŒ€λ‘œ ν‘œμ‹œλ  κ²ƒμž…λ‹ˆλ‹€.

5.2. κΈ°λ³Έ 폰트 μ„€μ • λ³€κ²½

  1. μ„œλΈŒλΌμž„ ν…μŠ€νŠΈλ₯Ό μ—΄κ³  νŽΈμ§‘ 쀑인 파일이 μ—†λŠ” μƒνƒœμ—μ„œ Preferences 메뉴λ₯Ό μ—½λ‹ˆλ‹€.
  2. Settingsλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  3. Font Face μ˜΅μ…˜μ„ μ°Ύμ•„ μ›ν•˜λŠ” ν•œκΈ€ 폰트 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.
  4. 폰트 섀정을 μ €μž₯ν•˜κ³  ν…μŠ€νŠΈ νŒŒμΌμ„ λ‹€μ‹œ νŽΈμ§‘ν•˜λ©΄ ν•œκΈ€μ΄ μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œλ  κ²ƒμž…λ‹ˆλ‹€.

5.3. μ–Έμ–΄ 및 지역 μ„€μ • λ³€κ²½

  1. μ»΄ν“¨ν„°μ˜ Control Panel을 μ—½λ‹ˆλ‹€.
  2. Clock and Region μ˜΅μ…˜μ„ μ„ νƒν•©λ‹ˆλ‹€.
  3. Region and Language μ„Ήμ…˜μœΌλ‘œ μ΄λ™ν•˜κ³ , Administrative 탭을 μ„ νƒν•©λ‹ˆλ‹€.
  4. Change system localeλ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
  5. ν•œκΈ€μ΄ μ •μƒμ μœΌλ‘œ ν‘œμ‹œλ˜λŠ” 지역을 μ„ νƒν•©λ‹ˆλ‹€. (예: λŒ€ν•œλ―Όκ΅­)
  6. μ‹œμŠ€ν…œμ„ μž¬λΆ€νŒ…ν•˜κ³  μ„œλΈŒλΌμž„ ν…μŠ€νŠΈλ₯Ό λ‹€μ‹œ μ—΄μ–΄ ν•œκΈ€μ΄ μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œλ˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ‹€λ₯Έ λŒ€μ•ˆλ“€μ„ μ‹œλ„ν•΄λ³΄λ©΄ μ„œλΈŒλΌμž„ ν…μŠ€νŠΈμ˜ ν•œκΈ€ 깨짐 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ λ¬Έμ œκ°€ μ§€μ†λœλ‹€λ©΄, 좔가적인 쑰치λ₯Ό μ·¨ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€