보이지 않는 문자 감지기

제로폭 공백·양방향 제어·소프트 하이픈·BOM 등 눈에 보이지 않는 유니코드 문자를 찾아 제거합니다 — 트로이 소스 공격에 쓰이는 문자도 포함됩니다.

텍스트를 붙여넣거나 입력하면 보이지 않는 문자를 검사합니다.

숨은 문자란?

제로폭 공백(U+200B), 제로폭 조이너·비조이너, BOM, 소프트 하이픈, 양방향(bidi) 제어처럼 눈에 보이지 않으면서 텍스트 안에 들어 있는 유니코드 문자가 있습니다. 웹사이트·PDF·채팅·문서에서 복사할 때 함께 딸려 오며 검색, 문자열 비교, 폼 검증, 코드, URL을 깨뜨릴 수 있습니다. 이 도구는 각 문자의 위치·이름·코드포인트를 표시하고 이를 제거한 정리본을 제공합니다. 표의 마지막 열 “주변 글”은 찾은 문자마다 앞뒤의 보이는 글을 보여 주고 숨은 문자는 그 자리에 표시로 나타내, 입력한 텍스트에서 그 위치를 눈으로 찾을 수 있게 합니다. “숨은 문자의 위치”는 입력한 텍스트를 그대로 보여 주면서 각 숨은 문자를 그 자리에 ZWSP·RLO·BOM 같은 표시나 코드포인트로 드러내고, “지우지 말고 공백으로 바꾸기”를 켜면 PDF에서 복사한 글처럼 폭 없는 공백이 띄어쓰기 역할을 하던 자리에 공백을 남깁니다. 개수 아래 한 줄에는 찾은 종류마다 — 폭 없는 문자, 방향 제어(bidi), 태그 문자, 이체자 선택자, 기타 서식 문자 — 이름과 개수가 나오고, “정리된 텍스트에서 지울 종류:”의 종류별 체크를 풀면 이모지의 조이너처럼 그 종류는 정리본에 남기고 표에는 그대로 적습니다. 태그 문자는 하나하나 이름이 붙고, 이어진 태그 문자가 이루는 보이지 않는 글도 읽어 줍니다. 줄바꿈 없는 공백, 줄·문단 구분 문자, 제어 문자(탭·줄바꿈·캐리지 리턴 제외)는 따로 적습니다 — 보통 공백처럼 보이거나 아무것도 그리지 않지만 스프레드시트나 검색은 다른 글자로 다루며, “이것도 고치기”를 켜지 않으면 정리된 텍스트에 그대로 남습니다.

왜 중요한가

제로폭 공백 하나로 똑같아 보이는 두 문자열이 다르게 비교되거나 비밀번호 입력이 실패할 수 있습니다. 양방향 오버라이드 문자는 소스코드가 보이는 것과 다르게 컴파일되는 트로이 소스(Trojan Source) 공격의 근간입니다. 모든 처리는 브라우저에서 이뤄지므로 민감하거나 신뢰할 수 없는 텍스트도 안전하게 검사할 수 있습니다.

자주 묻는 질문

어떤 문자를 숨은 문자로 보나요?

유니코드 Format(Cf) 범주의 문자입니다: 제로폭 공백·조이너·비조이너, BOM, 소프트 하이픈, 좌우 방향 임베딩·오버라이드·아이솔레이트 제어와 방향 표시 문자. 이 범주 밖의 두 가지도 잡아냅니다. 하나는 아무것도 바꾸지 않는 이체자 선택자로, 앞에 글자가 없거나 다른 선택자 뒤에 겹쳐 붙은 것입니다 — 이모지 속에 데이터를 숨기는 방식이 바로 이것입니다. ❤️처럼 앞 글자의 모양을 실제로 바꾸는 선택자는 그대로 둡니다. 다른 하나는 아무것도 그리지 않는 한글 채움 문자 U+3164와 U+FFA0입니다. 일반 공백·탭·줄바꿈은 건드리지 않습니다. 줄바꿈 없는 공백, 줄·문단 구분 문자, 그 밖의 제어 문자는 따로 적어 두고, 이것도 고치기를 켤 때만 바꿉니다.

정리하면 눈에 보이는 글자도 바뀌나요?

글자 자체는 바뀌지 않습니다. 보이지 않는 문자만 제거하고(“지우지 말고 공백으로 바꾸기”를 켜면 두 단어 사이의 숨은 문자는 공백이 됩니다), 이모지를 한 덩어리로 묶는 조이너(👩‍💻, 무지개 깃발, 지역 깃발)는 그대로 두어 이모지가 쪼개지지 않습니다. 다만 제로폭 조이너·비조이너를 지우면 페르시아어·아랍어·인도계 문자의 글자 이어짐이 달라질 수 있고, 양방향 제어 문자를 지우면 방향이 섞인 텍스트의 표시 순서가 바뀝니다 — 몰래 끼워 넣은 것을 지우는 이유가 바로 그것입니다.

텍스트 속 어디에 숨은 문자가 있는지 볼 수 있나요?

네. 숨은 문자의 위치는 입력한 텍스트를 그대로 보여 주면서 각 숨은 문자를 그 자리에 ZWSP·RLO·BOM·VS16 같은 표시나 코드포인트로 바꿔 그리고, 표시에 마우스를 올리면 이름과 코드포인트가 나옵니다. 표시는 확인용일 뿐이니 이 부분 말고 아래 정리된 텍스트를 복사하세요.

줄바꿈 없는 공백이나 제어 문자도 잡나요? 숨은 문자 중 일부는 남겨 둘 수 있나요?

잡아서 따로 적고, 어떻게 할지는 사용자가 정합니다. 줄바꿈 없는 공백, 줄·문단 구분 문자, NEL, 그리고 탭·줄바꿈·캐리지 리턴을 뺀 제어 문자는 별도 목록에 위치와 함께 적히고, 이런 문자만 있는 텍스트도 깨끗하다고 하지 않습니다. 이것도 고치기를 켜지 않으면 정리된 텍스트에 그대로 남고, 켜면 줄바꿈 없는 공백은 보통 공백으로, 구분 문자는 줄바꿈으로 바꾸고 제어 문자는 지웁니다. 개수 아래 한 줄에는 찾은 종류마다 — 폭 없는 문자, 방향 제어(bidi), 태그 문자, 이체자 선택자, 기타 서식 문자 — 이름과 개수가 나오고, 정리된 텍스트에서 지울 종류:에 종류마다 체크 상자가 있어(모두 켜진 채로 시작) 이모지의 조이너처럼 남겨 둘 종류의 체크를 풀면 표에는 그대로 적힌 채 정리본에 남습니다. 태그 문자는 하나하나 이름이 붙고, 이어진 태그 문자가 이루는 글도 읽어 줍니다.

표에서 숨은 문자 주변의 글도 보이나요?

네. 표의 마지막 열 “주변 글”에 찾은 문자마다 앞뒤의 보이는 글자 몇 개가 나오고, 그 문자는 제자리에 ZWSP·RLO 같은 표시로 나타나 입력한 텍스트에서 위치를 눈으로 찾을 수 있습니다. 그 범위 안의 다른 숨은 문자는 빼고, 줄바꿈은 공백 하나로 보여 줘서 줄마다 한 줄로 유지됩니다.