PortDock

ASCII 코드표·제어 문자

ASCII 0~127 의 10진·HEX·2진 값과 글자, STX·ETX·ACK·NAK·ENQ·CR·LF·XON·XOFF 같은 제어 문자의 이름과 캐럿·이스케이프 표기를 한 표로. 시리얼 통신 프레임 읽기용.

10진HEX2진글자·약어이름표기
0000000000NUL널(빈 문자) — Null^@ \0
1010000001SOH머리말 시작 — Start of Heading^A
2020000010STX본문 시작 — Start of Text^B
3030000011ETX본문 끝 — End of Text^C
4040000100EOT전송 끝 — End of Transmission^D
5050000101ENQ조회(응답 요청) — Enquiry^E
6060000110ACK긍정 응답 — Acknowledge^F
7070000111BEL벨(경고음) — Bell^G \a
8080001000BS백스페이스 — Backspace^H \b
9090001001HT가로 탭 — Horizontal Tabulation^I \t
100A0001010LF줄 바꿈 — Line Feed^J \n
110B0001011VT세로 탭 — Vertical Tabulation^K \v
120C0001100FF폼 피드(쪽 넘김) — Form Feed^L \f
130D0001101CR캐리지 리턴(줄 처음으로) — Carriage Return^M \r
140E0001110SO시프트 아웃 — Shift Out^N
150F0001111SI시프트 인 — Shift In^O
16100010000DLE데이터 링크 이스케이프 — Data Link Escape^P
17110010001DC1장치 제어 1 (XON) — Device Control 1^Q
18120010010DC2장치 제어 2 — Device Control 2^R
19130010011DC3장치 제어 3 (XOFF) — Device Control 3^S
20140010100DC4장치 제어 4 — Device Control 4 (Stop)^T
21150010101NAK부정 응답 — Negative Acknowledge^U
22160010110SYN동기 유휴 — Synchronous Idle^V
23170010111ETB전송 블록 끝 — End of Transmission Block^W
24180011000CAN취소 — Cancel^X
25190011001EM매체 끝 — End of Medium^Y
261A0011010SUB치환 — Substitute^Z
271B0011011ESC이스케이프 — Escape^[ \x1B
281C0011100FS파일 구분 — File Separator^\
291D0011101GS그룹 구분 — Group Separator^]
301E0011110RS레코드 구분 — Record Separator^^
311F0011111US단위 구분 — Unit Separator^_
32200100000SP공백 — Space
33210100001!
34220100010"
35230100011#
36240100100$
37250100101%
38260100110&
39270100111'
40280101000(
41290101001)
422A0101010*
432B0101011+
442C0101100,
452D0101101-
462E0101110.
472F0101111/
483001100000
493101100011
503201100102
513301100113
523401101004
533501101015
543601101106
553701101117
563801110008
573901110019
583A0111010:
593B0111011;
603C0111100<
613D0111101=
623E0111110>
633F0111111?
64401000000@
65411000001A
66421000010B
67431000011C
68441000100D
69451000101E
70461000110F
71471000111G
72481001000H
73491001001I
744A1001010J
754B1001011K
764C1001100L
774D1001101M
784E1001110N
794F1001111O
80501010000P
81511010001Q
82521010010R
83531010011S
84541010100T
85551010101U
86561010110V
87571010111W
88581011000X
89591011001Y
905A1011010Z
915B1011011[
925C1011100\
935D1011101]
945E1011110^
955F1011111_
96601100000`
97611100001a
98621100010b
99631100011c
100641100100d
101651100101e
102661100110f
103671100111g
104681101000h
105691101001i
1066A1101010j
1076B1101011k
1086C1101100l
1096D1101101m
1106E1101110n
1116F1101111o
112701110000p
113711110001q
114721110010r
115731110011s
116741110100t
117751110101u
118761110110v
119771110111w
120781111000x
121791111001y
1227A1111010z
1237B1111011{
1247C1111100|
1257D1111101}
1267E1111110~
1277F1111111DEL삭제 — Delete^?

찾기 칸은 이 브라우저 안에서만 표를 거릅니다. 입력한 값은 어디에도 보내지 않습니다.

시리얼 통신에서 자주 보는 제어 문자

HEX약어흔한 쓰임
02 · 03STX · ETX프레임의 시작·끝 표시. 장비 고유 프로토콜이 «STX 본문 ETX 체크섬» 꼴로 많이 씁니다(체크섬이 STX 를 포함하는지는 매뉴얼마다 다름).
05ENQ«응답해 달라» 는 요청 바이트로 쓰는 프로토콜이 있습니다.
06 · 15ACK · NAK받았음·못 받았음(다시 보내 달라) 응답.
0D · 0ACR · LF줄 끝. 장비마다 CR 만, LF 만, CR LF 를 다르게 기대합니다 — 명령이 안 먹으면 줄 끝부터 맞춥니다.
11 · 13DC1 · DC3소프트웨어 흐름 제어 XON(다시 보내)·XOFF(멈춰). 이 방식을 쓰면 데이터에 11·13 이 그대로 들어가면 안 됩니다.
1BESC터미널 제어 시퀀스(ESC [ …)의 시작.
00NUL빈 바이트. 문자열 끝 표시로 쓰는 장비도 있습니다.

128~255 와 한글

  • ASCII 는 7비트(0~127)까지입니다. 128~255 는 코드 페이지(ISO 8859-1, CP949 등)마다 다른 글자라 이 표에 넣지 않았습니다.
  • 한글은 한 글자가 여러 바이트입니다 — UTF-8 은 3바이트, CP949(EUC-KR 확장)는 2바이트. 같은 한글이 장비와 PC 에서 깨져 보이면 인코딩이 다른 것입니다.
  • 캐럿 표기 ^M 은 Ctrl+M 과 같은 코드(0x0D)이고, 이스케이프 \r 은 C 같은 언어의 문자열 표기입니다.

자주 묻는 것

CR 과 LF 는 몇 번인가요?

CR(캐리지 리턴)은 13(0x0D), LF(줄 바꿈)는 10(0x0A)입니다. 윈도우 텍스트 파일의 줄 끝은 CR LF(0D 0A) 두 바이트입니다.

숫자 '0' 과 값 0 은 다른가요?

다릅니다. 글자 '0' 은 48(0x30), 값 0 은 NUL(0x00)입니다. 장비가 숫자를 ASCII 로 보내면 '1' '2' '3' 은 31 32 33 으로 옵니다.

대문자와 소문자는 얼마나 차이 나나요?

32(0x20)입니다. 'A' 는 65(0x41), 'a' 는 97(0x61) 로 비트 하나(0x20)만 다릅니다.

DEL(0x7F)도 제어 문자인가요?

RFC 20 은 DEL 을 제어 문자 목록에 두면서 «엄밀히는 제어 문자가 아니다» 라고 주를 답니다. 이 표에서는 제어 문자로 함께 표시합니다.

바이트를 글자로 바꾸거나 글자를 바이트로 바꾸려면 HEX ↔ ASCII 변환기.

출처