본문으로 건너뛰기
AZ Tools

파일 인코딩 감지기

어떤 텍스트 파일이든 업로드 → 인코딩 감지 — UTF-8·UTF-16 LE/BE·UTF-32·Latin-1·ASCII — BOM 감지·바이트 신호 분석·hex 미리보기 포함.

사용법

  1. 어떤 텍스트 파일이든 드롭 또는 선택. 감지는 브라우저에서 실행 — 파일 페이지 떠나지 않음.
  2. BOM 패널 먼저 확인: BOM 있으면 인코딩 본질적으로 확실. BOM 없으면 휴리스틱 감지.
  3. hex 뷰와 디코드된 텍스트 미리보기 비교. 비 ASCII 문자가 올바르게 보이면 감지 정확.

자세한 설명

펼치기

파일이 깨진 글자(괆쒋쀎)로 나타나면, 첫 단계는 실제로 무슨 인코딩인지 파악. 이 감지기는 브라우저에서 파일 바이트 읽고(업로드 안 함) 표준 휴리스틱 실행: BOM 바이트 시퀀스 우선(UTF-16 LE는 FF FE·UTF-8 BOM은 EF BB BF 등), 그다음 널 바이트 밀도(UTF-16은 ASCII 콘텐츠에 매 다른 바이트마다 널), 그다음 UTF-8 유효성 검사(대부분 멀티 바이트 시퀀스는 잘못된 Latin-1 → 유효 UTF-8 = 매우 높은 확률로 UTF-8). 감지된 인코딩·신뢰도 퍼센트·있다면 BOM 바이트·hex/텍스트 나란히 미리보기 반환 → 디코드 시각적 정상성 확인.

자주 묻는 질문

chardet 같은 '감지' 라이브러리 왜 없나?

브라우저는 chardet 안 갖춤, 일부 흔한 경우 위해 큰 인코딩 감지 라이브러리(ICU CharsetDetector JS 포트는 ~200KB) 임포트는 과함. 이 툴은 95% 경우 커버: BOM·ASCII만·유효 UTF-8·널 바이트 패턴으로 UTF-16. BOM 없는 이국적 아시아 인코딩(Shift_JIS·GB2312·EUC-KR)엔 chardet 필요 — 단 이 툴은 'UTF-8 아님'은 알려줘서 다른 곳 찾을 줄 알게 함.

BOM이란 뭔가?

Byte Order Mark는 인코딩을 명시적으로 표시하는 2-4 바이트 프리픽스. UTF-8 BOM은 EF BB BF(기술적 불필요, 논쟁적 — Microsoft 추가, Unix 도구는 보통 제거). UTF-16/32 BOM(FF FE 등)은 엔디언도 신호하기에 유용. 파일에 BOM 있으면 절대 신뢰.

탐지기는 UTF-8이라는데 파일이 여전히 깨져서 열린다. 그럼 뭐가 문제인가?

그렇다면 파일은 UTF-8이 맞고, 그것을 읽는 프로그램이 UTF-8을 쓰지 않는 것이다. 이건 다른 문제이고 해법도 다르다. 로케일 설정, 가져오기 대화상자, 데이터베이스 연결의 문자셋 같은 것들이다. 탐지는 바이트가 무엇인지에 답할 뿐, 다음 프로그램을 동의하게 만들지는 못한다. 무언가를 다시 인코딩하기 전에 읽는 쪽이 무엇을 가정하는지 확인하라.

믿을 만한 답을 얻으려면 텍스트가 얼마나 필요한가?

인코딩을 서로 구분해주는 문자가 들어 있을 만큼이면 된다. UTF-8은 여러 바이트로 이루어진 시퀀스 하나만 있어도 확인되므로, 짧은 파일이라도 그런 문자가 있으면 결론이 난다. 순수 ASCII 파일은 길이와 무관하게 진짜로 모호하다. 거의 모든 인코딩에서 유효하기 때문이다. 그리고 악센트 문자 하나가 든 짧은 한 줄이야말로 탐지기가 추측할 수밖에 없는 경우다.

이 주제의 가이드

관련 도구