01
1. 보이지 않는 문자가 문제를 일으키는 이유
제로폭 공백(U+200B), 결합체 표시(U+200C, U+200D), 파일 맨 앞에 남는 BOM(U+FEFF) 같은 문자는 화면에는 아무것도 보이지 않지만 실제로는 존재하는 문자입니다. 이런 문자가 코드나 설정 파일에 섞여 있으면 문자열 비교가 실패하거나, 정규식 매칭이 어긋나거나, JSON·YAML 파싱 오류를 일으킬 수 있습니다.
눈에 보이지 않지만 텍스트 안에 숨어 있는 제로폭 문자, BOM, 줄바꿈 없는 공백(NBSP), 제어문자를 찾아내고 코드포인트별 개수를 표로 보여준 뒤 한 번에 제거합니다.
| 코드포인트 | 이름 | 개수 |
|---|
제로폭 공백(U+200B), 결합체 표시(U+200C, U+200D), 파일 맨 앞에 남는 BOM(U+FEFF) 같은 문자는 화면에는 아무것도 보이지 않지만 실제로는 존재하는 문자입니다. 이런 문자가 코드나 설정 파일에 섞여 있으면 문자열 비교가 실패하거나, 정규식 매칭이 어긋나거나, JSON·YAML 파싱 오류를 일으킬 수 있습니다.
이 도구는 제로폭 공백류(U+200B~U+200D, 단어 결합자 U+2060), BOM(U+FEFF), 줄바꿈 없는 공백 NBSP(U+00A0), 좌우 방향 표시 문자(U+200E, U+200F), 소프트 하이픈(U+00AD), 그리고 탭·줄바꿈을 제외한 C0/C1 제어문자를 탐지합니다. 각 문자는 코드포인트(U+XXXX)와 이름, 등장 횟수로 표에 정리됩니다.
워드프로세서에서 복사한 텍스트, 다른 인코딩으로 저장된 파일을 열었을 때, 일부 메신저나 웹사이트가 워터마크·추적 목적으로 삽입하는 제로폭 문자 등에서 흔히 발견됩니다. 소스 코드나 설정 파일에 이런 문자가 남아 있으면 diff에서 이상한 변경으로 표시되거나 빌드가 실패하는 원인이 되므로, 붙여넣기 전에 이 도구로 한 번 스캔하는 것이 안전합니다.