영문이 든 Code 128 바코드를 스캔했는데 AB가 ㅁㅠ처럼 한글 자모로 입력되면, 스캐너 고장이 아니라 PC 입력 상태가 한글(가)로 켜져 있는 것입니다. 스캔하기 전에 오른쪽 Alt 키를 1번 눌러 영문(A)으로 바꾸면 바로 해결되고, 매번 바꾸기 번거로운 현장은 입력칸이나 연결 방식을 고정합니다.
숫자만 있는 EAN-13 상품 바코드는 한글 상태에서도 그대로 입력됩니다. 한글 자모는 영문 글자 키에만 배치되어 있어서, 알파벳이 섞인 Code 128 일련번호나 QR 코드에서 이 증상이 나타납니다.
영문이 한글 자모로 바뀌는 원리
제브라 DS3608 같은 USB 키보드(HID) 방식 스캐너는 바코드 글자를 자판의 키 입력으로 바꿔 보내므로, PC는 사람이 친 자판과 구분하지 못하고 그 순간의 입력 상태대로 글자를 만듭니다.
마이크로소프트 한국어 IME는 101~105키 자판의 미국 영어 키 위치에 자모를 배치합니다. 한글 상태에서 B 키는 ㅠ, A 키는 ㅁ이고, IME가 자모를 음절로 묶기 때문에 바코드 데이터 OUFMA 다섯 글자는 '여름' 2글자로 입력됩니다.
대문자는 Shift 키를 함께 누른 입력으로 들어갑니다. 한글 상태에서 Shift와 Q·W·E·R·T 5개 키는 쌍자음, Shift와 O·P 2개 키는 이중 모음이 되어 대문자 일련번호는 더 알아보기 어려운 글자로 바뀝니다.
증상별 원인과 설정 위치
| 증상 | 원인 | 고치는 곳 |
|---|---|---|
| 영문 AB가 ㅁㅠ처럼 한글 자모로 입력 | PC 입력 상태가 한글(가) | 오른쪽 Alt 키 1번으로 영문(A) 전환 |
| 영문 대소문자가 뒤바뀜 | PC의 Caps Lock 켜짐 | DS3608 Override Caps Lock Key, 1950g Keyboard Style |
| 숫자는 맞는데 @·#·\ 같은 특수 문자가 다른 글자로 입력 | 스캐너 국가 키보드와 PC 자판 배열 불일치 | 국가 키보드 바코드(허니웰 KBDCTY0 등) |
| QR 코드 속 한글이 깨진 글자로 입력 | 한글 출력 방식과 PC 설정 미비 | DS36X8 CJK 출력 설정과 레지스트리 EnableHexNumpad 1 |
허니웰 Xenon XP 1950g은 # $ @ [ \ ] ^ ` { | } ~ 12개 문자를 국가별 문자로 바꿔 보내는 것이 처음 설정이라, 국가 키보드가 PC 자판과 다르면 이 12개 기호부터 어긋납니다.
PC 입력 상태를 영문으로 고정하는 방법
- 스캔할 입력칸을 누른 뒤 작업 표시줄의 입력 표시가 '가'이면 오른쪽 Alt 키를 1번 눌러 'A'로 바꿉니다.
- 바코드 작업만 하는 PC는 Windows 11 설정의 시간 및 언어, 언어 및 지역에서 영어(미국)를 추가하고 Windows 로고 키와 스페이스바로 ENG 자판을 선택합니다. ENG 자판에는 한글 상태가 없어서 한/영 키를 잘못 눌러도 영문으로 입력됩니다.
- 자체 개발 프로그램은 바코드 입력칸의 IME 상태를 지정합니다. 윈도우 폼(.NET) 입력칸의 ImeMode를 Alpha(8)로 두면 한국어 IME가 영문 반각으로 동작하고, Disable(3)로 두면 사용자가 키보드로 IME를 켜지 못합니다.
- 프로그램이 COM 포트를 지원하면 DS3608은 USB CDC Host, 1950g은 USB Serial 바코드 1장으로 가상 COM 방식으로 바꿉니다. 키보드 입력을 거치지 않아 IME 상태와 상관없이 데이터가 들어갑니다.
윈도우 8부터 전체 입력 모드가 적용된 PC에서는 ImeMode 설정이 무시됩니다. 프로그램을 고친 뒤에는 현장 PC를 한글 상태로 바꿔 놓고 바코드 1장을 다시 스캔해 확인합니다.
스캐너 국가 키보드 설정
| 항목 | 제브라 DS3608·DS3678 | 허니웰 Xenon XP 1950g |
|---|---|---|
| 국가 키보드 처음 설정 | US English (North American) | United States (KBDCTY0) |
| 한국어 항목 | Korean (ASCII)·Korean (Hangul) 2종 | 목록에 없음 |
| Caps Lock 대응 | Override Caps Lock Key (처음 설정은 사용 안 함) | Caps Lock(KBDSTY1), Automatic Caps Lock(KBDSTY6), 처음 설정은 Regular(KBDSTY0) |
| 자판에 없는 문자 전송 | Emulate Keypad, ALT와 숫자 키 조합 (처음 설정은 사용) | ALT Mode 3 Characters·4 Characters (처음 설정은 Off) |
한국어 IME가 미국 영어 자판 위치를 기준으로 동작하므로, 영문·숫자 바코드는 국가 키보드를 처음 설정인 미국 영어로 둡니다. 국가 키보드는 자판 배열을 맞추는 설정이라 PC의 한글·영문 상태는 바꾸지 못합니다.
DS3608의 Korean (ASCII)은 기본 코드 페이지가 Windows 1252이고, Korean (Hangul)은 Windows 949입니다. 이 설정은 USB 키보드(HID) 방식에만 적용되고, 바꾸면 스캐너가 자동으로 재시작합니다.
한글이 든 QR 코드 출력 설정
이름이나 주소처럼 한글이 들어간 QR 코드는 키 하나로 만들 수 없는 음절을 보내야 해서, 제브라 DS36X8은 한글을 유니코드로 바꾼 뒤 키 입력으로 흉내 내 전송합니다.
- 스캐너는 CJK Output Method to Windows Host(파라미터 972)의 처음 설정인 Universal CJK Output(0)을 유지하고, PC 입력은 미국 영어 IME나 한국어 ASCII IME로 둡니다.
- PC는 레지스트리 편집기에서 HKEY_CURRENT_USER\Control Panel\Input Method 아래에 문자열(REG_SZ) EnableHexNumpad를 만들어 1로 설정하고 재부팅합니다.
- 완성형(CP949)으로 만든 QR 코드는 국가 키보드를 기본 코드 페이지가 Windows 949인 Korean (Hangul)로 맞춥니다.
UTF-8로 만든 QR 코드는 Unicode Output Control(파라미터 973)로 출력 대상을 정합니다. 처음 설정인 Universal Output(0)은 워드와 메모장에 모두 입력되고, Unicode Application Only(1)는 워드·워드패드에만 입력되고 메모장에는 입력되지 않습니다.
DS36X8의 ADF 데이터 가공 규칙은 한글 출력에 적용되지 않으므로, 앞뒤 문자 추가처럼 가공이 필요한 한글 데이터는 받는 프로그램에서 처리합니다.
설정 변경 뒤 확인 순서
설정을 바꾼 뒤에는 메모장을 열고 영문 대소문자, 숫자, 특수 문자가 섞인 바코드 1장을 한글 상태와 영문 상태에서 한 번씩 스캔합니다. 2번의 결과가 모두 원본 데이터와 같으면 업무 프로그램으로 옮겨 다시 확인합니다.
가상 COM 전환 순서와 드라이버는 바코드 스캐너 USB HID·가상 COM·RS-232 차이에, 현장별 기종은 바코드 스캐너 종류에 정리했습니다.




