파일 비교 시 글자가 깨질 때 해결법 (인코딩 가이드)
2025년 4월 1일
파일을 비교하려고 열었는데 한글이 깨져 보이거나, 정상적인 파일인데 비교 결과가 전부 "변경됨"으로 표시되는 경험을 해본 적 있으신가요? 대부분의 경우 인코딩 문제가 원인입니다.
이 글에서는 파일 비교 시 자주 발생하는 인코딩 문제의 원인과 해결법을 실제 사례와 함께 설명합니다.
인코딩이란?
컴퓨터는 문자를 숫자로 저장합니다. "가"라는 문자를 어떤 숫자로 표현할지 정하는 규칙이 바로 인코딩입니다. 같은 파일이라도 인코딩이 다르면 전혀 다른 문자로 해석됩니다.
한국어 환경에서 가장 많이 접하는 인코딩은 UTF-8과 EUC-KR입니다. UTF-8은 전 세계 모든 문자를 표현할 수 있는 현대 표준이고, EUC-KR은 한국어 전용 인코딩으로 구형 시스템에서 주로 사용됩니다.
증상별 원인 파악
"한글이 깨져 보인다" — 파일의 실제 인코딩과 프로그램이 해석하는 인코딩이 다를 때 발생합니다. EUC-KR로 저장된 파일을 UTF-8로 열면 글자가 깨집니다.
"파일 내용은 같은데 비교 결과가 다르다" — BOM(Byte Order Mark) 유무 차이일 수 있습니다. UTF-8 with BOM과 UTF-8 without BOM은 사람 눈에는 같지만 바이트 수준에서는 다릅니다.
"특정 문자만 깨진다" — 일부 특수문자나 이모지가 해당 인코딩에서 지원되지 않는 경우입니다. EUC-KR은 기본 한글과 일부 특수문자만 지원하므로, 확장 한자나 이모지가 포함되면 깨집니다.
해결 방법 1: 파일 인코딩 확인
먼저 파일의 실제 인코딩을 확인하세요. 텍스트 에디터(VS Code, Notepad++ 등)에서 파일을 열면 하단 상태바에 인코딩이 표시됩니다. 이 인코딩이 의도한 것과 맞는지 확인하세요.
해결 방법 2: 인코딩 변환
인코딩이 다른 두 파일을 비교할 때는 먼저 하나의 인코딩으로 통일해야 합니다. UTF-8이 가장 범용적이므로 UTF-8로 변환하는 것을 권장합니다.
텍스트 에디터에서 "다른 이름으로 저장" → 인코딩을 UTF-8로 선택하여 저장하면 됩니다. 또는 명령줄에서 iconv 도구를 사용할 수도 있습니다.
해결 방법 3: BOM 처리
UTF-8 BOM은 파일 시작 부분의 3바이트(EF BB BF)입니다. 비교 시 이 차이가 문제가 된다면, BOM을 제거하거나 양쪽 파일의 BOM 유무를 통일하세요.
해결 방법 4: 자동 인코딩 감지 도구 사용
DiffMate는 파일을 열 때 자동으로 인코딩을 감지합니다. UTF-8 → EUC-KR → ISO-8859-1 → UTF-16 순서로 시도하여 가장 적합한 인코딩으로 파일을 해석합니다. 대부분의 경우 별도 설정 없이 정상적으로 비교할 수 있습니다.
예방을 위한 팁
- 새로 만드는 파일은 항상 UTF-8로 저장
- 팀 내 인코딩 표준을 정하고 공유
- 외부에서 받은 파일은 비교 전 인코딩 확인
- 데이터베이스에서 추출 시 UTF-8 옵션 사용
결론
인코딩 문제는 원인만 알면 쉽게 해결됩니다. 파일 비교 전에 인코딩을 확인하고 통일하는 습관을 들이면 불필요한 시간 낭비를 줄일 수 있습니다. DiffMate의 자동 인코딩 감지 기능을 활용하면 더욱 편리합니다.