QR코드 스캔
이미지, 붙여넣은 캡처, 카메라로 QR 코드를 스캔합니다. 한 장에 여러 코드도 모두 읽고, 링크의 실제 접속 도메인을 보여 주며, EUC-KR 한글도 깨지지 않습니다. 이미지는 업로드하지 않습니다.
- 이미지와 카메라 화면은 브라우저에 남습니다. URL 모드는 입력한 주소에서 이미지를 내려받습니다
- 무료 · 회원가입 불필요
WeChat으로 스캔하여 공유
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.
큐싱 확인: 링크가 실제로 어디로 가는지
금융위원회 등 관계 부처는 공유형 킥보드나 행사 안내에 쓰이는 QR 코드를 악용해 악성 앱 설치를 유도하는 ‘큐싱’을 주의하라고 안내했습니다(2025-01-20 보도자료). 휴대폰 카메라로 바로 열기 전에 캡처를 여기에 올리면 주소를 먼저 볼 수 있습니다.
| 코드 안의 주소 | 결과 카드 |
|---|---|
https://kick.example.kr@ride-pay.example.com/start | 호스트 ride-pay.example.com, “@ 앞은 사용자 이름” 경고 |
https://exаmple.com/login(키릴 문자 а) | 호스트 xn--exmple-4nf.com, 비슷한 글자 경고 |
javascript:alert(document.domain) | ‘앱 링크’, 열지 않는다는 경고와 함께 텍스트로만 표시 |
링크가 되는 것은 http / https뿐이고, 클릭할 때만 새 탭에서 열립니다. 긴 주소의 매개변수를 나눠 보려면 URL 분석기를 쓰세요.
읽기 결과의 종류
- 연락처: vCard와 MECARD를 항목별로 보여 줍니다.
FN:김민준,ORG:예시 주식회사,TEL;TYPE=CELL:010-1234-5678이 든 vCard는 이름·회사·전화 3줄이 됩니다. - Wi-Fi: 네트워크 이름, 비밀번호, 암호화 방식, 숨김 여부(형식은 ZXing: Barcode Contents).
- 이메일·전화·SMS·위치: mailto, tel, sms / SMSTO, geo를 항목으로 나눕니다.
geo:37.5665,126.9780은 위도·경도와 OpenStreetMap 링크를 보여 줍니다. - 앱 링크·텍스트·바이너리: 그 밖의 scheme은 텍스트로만, 텍스트가 아닌 바이트는 16진수로 보여 줍니다.
여러 코드와 큰 사진
한 이미지에 있는 코드는 최대 16개까지 읽고 왼쪽 위부터 번호를 매깁니다. 흑백이 반전된 코드, 회전한 코드, 여백 없는 코드도 읽습니다. 16,777,216픽셀(iOS Safari의 캔버스 한도)을 넘는 사진은 줄여서 읽고 상태 줄에 알립니다. 4000×3000 사진 속 180픽셀 코드는 데스크톱 Chromium에서 약 1.2초 걸렸습니다.
한글이 깨질 때: EUC-KR과 ECI
QR 코드에는 바이트가 저장됩니다. 문자 집합은 ECI로 선언할 수 있지만(ISO/IEC 18004) 대부분의 생성기는 선언 없이 UTF-8을 씁니다. ECI가 있으면 그대로 따르고 카드에 ‘UTF-8(ECI 26)’처럼 표시합니다. 없으면 올바른 UTF-8은 UTF-8로, 아니면 한국어 페이지에서는 EUC-KR을 먼저 시도하고 나머지는 ZXing 추정 규칙을 따릅니다. 결과에는 ‘추정’이라고 붙고, ‘문자 인코딩’ 메뉴에서 바꿀 수 있습니다.
EUC-KR 바이트로 만든 「회의실 3층 예약 확인」은 이 페이지에서 바로 읽혔고 ‘EUC-KR(추정)’으로 표시됐습니다.
다른 스캐너와 비교
2026-09-30에 같은 테스트 이미지를 데스크톱 Chromium에서 읽은 결과입니다(흑백 반전·회색 저대비 코드는 모두 읽음).
| 테스트 이미지 | ZeroTool | qrscanner.net | ScanQR |
|---|---|---|---|
| EUC-KR 한글 텍스트(ECI 없음) | 바로 정상(‘EUC-KR(추정)’) | ‘빈 QR 코드’ | 성공 표시, 텍스트는 비어 있음 |
| 한 장에 코드 3개 | 3건 | 1건(Wi-Fi만) | 3건 |
| 4000×3000 사진 속 작은 코드 | 약 1.2초 | 읽음 | ‘No QR code found’ |
https://paypal.com@evil.example/login | 호스트 evil.example과 경고 | 주소만 표시 | 주소를 링크로 표시, 경고 없음 |
제한
- 한 번에 이미지 1장입니다. PDF는 캡처해서 올리세요. HEIC는 표시할 수 있는 브라우저(Safari)에서만 읽힙니다.
- 처음에는 약 420KB의 디코더를 내려받는 시간이 걸립니다.
- QR 계열만 읽으며 EAN, Code 128 같은 바코드는 읽지 못합니다.
- URL 모드는 이미지 서버가 교차 출처 요청(CORS)을 허용할 때만 됩니다.
QR 코드를 만들려면 QR코드 만들기, Wi-Fi 공유용은 와이파이 QR코드 만들기를 쓰세요.
FAQ
이미지가 서버로 전송되나요?
아니요. 파일, 붙여넣은 캡처, 카메라 화면은 브라우저 안의 zxing-wasm으로 읽습니다. 디코더는 이 사이트의 /vendor에서 불러옵니다. 네트워크를 쓰는 것은 URL 모드뿐이며, 입력한 주소에서 이미지를 내려받습니다(쿠키와 리퍼러는 보내지 않음).
PC에서 QR 코드를 스캔하려면?
QR 코드가 보이는 화면을 캡처한 뒤 이 페이지에서 Ctrl+V(Mac은 ⌘V)를 누르면 됩니다. 이미지 파일을 끌어다 놓거나 웹캠으로 스캔해도 됩니다.
큐싱이 의심되는 QR 코드는 어떻게 확인하나요?
코드를 휴대폰으로 바로 열지 말고 캡처나 사진을 여기에 올려 주소를 먼저 보세요. 결과 카드는 실제로 접속되는 호스트를 따로 보여 주고, 주소에 @가 있거나 punycode(xn--) 도메인이면 경고합니다. 의심되면 KISA 보호나라 카카오톡 채널의 큐싱 메뉴나 국번 없이 118로 문의할 수 있습니다.
읽은 한글이 깨져 보여요.
코드에 EUC-KR 같은 바이트가 ECI 선언 없이 들어 있을 수 있습니다. 한국어 페이지는 UTF-8이 아닌 바이트를 먼저 EUC-KR로 읽습니다. 그래도 깨지면 결과 아래의 ‘문자 인코딩’ 메뉴에서 다른 인코딩을 고르세요.
카메라 스캔에는 무엇이 필요한가요?
표준 카메라 API(getUserMedia)를 지원하는 브라우저, HTTPS 페이지, 카메라 권한입니다. ‘카메라로 스캔’을 누를 때만 권한을 요청하고, 화면은 기기 안에서 처리합니다.