ASCII 테이블 조회
완전한 ASCII 문자 인코딩 대조표, 제어 문자, 인쇄 가능 문자 및 확장 문자 포함
| 10진수 | 16진수 | 문자 | 설명 | |
|---|---|---|---|---|
| 0 | 0x00 | - | 널 문자 (Null) | |
| 1 | 0x01 | - | 헤더 시작 (Start of Heading) | |
| 2 | 0x02 | - | 텍스트 시작 (Start of Text) | |
| 3 | 0x03 | - | 텍스트 끝 (End of Text) | |
| 4 | 0x04 | - | 전송 끝 (End of Transmission) | |
| 5 | 0x05 | - | 질문 (Enquiry) | |
| 6 | 0x06 | - | 확인 (Acknowledge) | |
| 7 | 0x07 | - | 벨 (Bell) | |
| 8 | 0x08 | - | 백스페이스 (Backspace) | |
| 9 | 0x09 | - | 수평 탭 (Horizontal Tab) | |
| 10 | 0x0A | - | 줄 바꿈 (Line Feed) | |
| 11 | 0x0B | - | 수직 탭 (Vertical Tab) | |
| 12 | 0x0C | - | 폼 피드 (Form Feed) | |
| 13 | 0x0D | - | 캐리지 리턴 (Carriage Return) | |
| 14 | 0x0E | - | 시프트 아웃 (Shift Out) | |
| 15 | 0x0F | - | 시프트 인 (Shift In) | |
| 16 | 0x10 | - | 데이터 링크 이스케이프 (Data Link Escape) | |
| 17 | 0x11 | - | 장치 제어 1 (Device Control 1) | |
| 18 | 0x12 | - | 장치 제어 2 (Device Control 2) | |
| 19 | 0x13 | - | 장치 제어 3 (Device Control 3) | |
| 20 | 0x14 | - | 장치 제어 4 (Device Control 4) | |
| 21 | 0x15 | - | 부정 확인 (Negative Acknowledge) | |
| 22 | 0x16 | - | 동기 유휴 (Synchronous Idle) | |
| 23 | 0x17 | - | 전송 블록 끝 (End of Transmission Block) | |
| 24 | 0x18 | - | 취소 (Cancel) | |
| 25 | 0x19 | - | 매체 끝 (End of Medium) | |
| 26 | 0x1A | - | 대체 (Substitute) | |
| 27 | 0x1B | - | 이스케이프 (Escape) | |
| 28 | 0x1C | - | 파일 구분자 (File Separator) | |
| 29 | 0x1D | - | 그룹 구분자 (Group Separator) | |
| 30 | 0x1E | - | 레코드 구분자 (Record Separator) | |
| 31 | 0x1F | - | 단위 구분자 (Unit Separator) | |
| 127 | 0x7F | - | 삭제 (Delete) | |
| 32 | 0x20 | ␣ | 공백 (Space) | |
| 33 | 0x21 | ! | 느낌표 (Exclamation mark) | |
| 34 | 0x22 | " | 큰따옴표 (Double quote) | |
| 35 | 0x23 | # | 샵 (Number sign) | |
| 36 | 0x24 | $ | 달러 기호 (Dollar sign) | |
| 37 | 0x25 | % | 퍼센트 (Percent sign) | |
| 38 | 0x26 | & | 앰퍼샌드 (Ampersand) | |
| 39 | 0x27 | ' | 작은따옴표 (Single quote) | |
| 40 | 0x28 | ( | 왼쪽 괄호 (Left parenthesis) | |
| 41 | 0x29 | ) | 오른쪽 괄호 (Right parenthesis) | |
| 42 | 0x2A | * | 별표 (Asterisk) | |
| 43 | 0x2B | + | 더하기 (Plus sign) | |
| 44 | 0x2C | , | 쉼표 (Comma) | |
| 45 | 0x2D | - | 하이픈 (Hyphen) | |
| 46 | 0x2E | . | 마침표 (Period) | |
| 47 | 0x2F | / | 슬래시 (Slash) | |
| 48 | 0x30 | 0 | 숫자 0 (Digit 0) | |
| 49 | 0x31 | 1 | 숫자 1 (Digit 1) | |
| 50 | 0x32 | 2 | 숫자 2 (Digit 2) | |
| 51 | 0x33 | 3 | 숫자 3 (Digit 3) | |
| 52 | 0x34 | 4 | 숫자 4 (Digit 4) | |
| 53 | 0x35 | 5 | 숫자 5 (Digit 5) | |
| 54 | 0x36 | 6 | 숫자 6 (Digit 6) | |
| 55 | 0x37 | 7 | 숫자 7 (Digit 7) | |
| 56 | 0x38 | 8 | 숫자 8 (Digit 8) | |
| 57 | 0x39 | 9 | 숫자 9 (Digit 9) | |
| 58 | 0x3A | : | 콜론 (Colon) | |
| 59 | 0x3B | ; | 세미콜론 (Semicolon) | |
| 60 | 0x3C | < | 작다 (Less than) | |
| 61 | 0x3D | = | 등호 (Equal sign) | |
| 62 | 0x3E | > | 크다 (Greater than) | |
| 63 | 0x3F | ? | 물음표 (Question mark) | |
| 64 | 0x40 | @ | 골뱅이 (At sign) | |
| 65 | 0x41 | A | 대문자 A (Uppercase A) | |
| 66 | 0x42 | B | 대문자 B (Uppercase B) | |
| 67 | 0x43 | C | 대문자 C (Uppercase C) | |
| 68 | 0x44 | D | 대문자 D (Uppercase D) | |
| 69 | 0x45 | E | 대문자 E (Uppercase E) | |
| 70 | 0x46 | F | 대문자 F (Uppercase F) | |
| 71 | 0x47 | G | 대문자 G (Uppercase G) | |
| 72 | 0x48 | H | 대문자 H (Uppercase H) | |
| 73 | 0x49 | I | 대문자 I (Uppercase I) | |
| 74 | 0x4A | J | 대문자 J (Uppercase J) | |
| 75 | 0x4B | K | 대문자 K (Uppercase K) | |
| 76 | 0x4C | L | 대문자 L (Uppercase L) | |
| 77 | 0x4D | M | 대문자 M (Uppercase M) | |
| 78 | 0x4E | N | 대문자 N (Uppercase N) | |
| 79 | 0x4F | O | 대문자 O (Uppercase O) | |
| 80 | 0x50 | P | 대문자 P (Uppercase P) | |
| 81 | 0x51 | Q | 대문자 Q (Uppercase Q) | |
| 82 | 0x52 | R | 대문자 R (Uppercase R) | |
| 83 | 0x53 | S | 대문자 S (Uppercase S) | |
| 84 | 0x54 | T | 대문자 T (Uppercase T) | |
| 85 | 0x55 | U | 대문자 U (Uppercase U) | |
| 86 | 0x56 | V | 대문자 V (Uppercase V) | |
| 87 | 0x57 | W | 대문자 W (Uppercase W) | |
| 88 | 0x58 | X | 대문자 X (Uppercase X) | |
| 89 | 0x59 | Y | 대문자 Y (Uppercase Y) | |
| 90 | 0x5A | Z | 대문자 Z (Uppercase Z) | |
| 91 | 0x5B | [ | 왼쪽 대괄호 (Left bracket) | |
| 92 | 0x5C | \ | 역슬래시 (Backslash) | |
| 93 | 0x5D | ] | 오른쪽 대괄호 (Right bracket) | |
| 94 | 0x5E | ^ | 캐럿 (Caret) | |
| 95 | 0x5F | _ | 밑줄 (Underscore) | |
| 96 | 0x60 | ` | 악센트 (Grave accent) | |
| 97 | 0x61 | a | 소문자 a (Lowercase a) | |
| 98 | 0x62 | b | 소문자 b (Lowercase b) | |
| 99 | 0x63 | c | 소문자 c (Lowercase c) | |
| 100 | 0x64 | d | 소문자 d (Lowercase d) | |
| 101 | 0x65 | e | 소문자 e (Lowercase e) | |
| 102 | 0x66 | f | 소문자 f (Lowercase f) | |
| 103 | 0x67 | g | 소문자 g (Lowercase g) | |
| 104 | 0x68 | h | 소문자 h (Lowercase h) | |
| 105 | 0x69 | i | 소문자 i (Lowercase i) | |
| 106 | 0x6A | j | 소문자 j (Lowercase j) | |
| 107 | 0x6B | k | 소문자 k (Lowercase k) | |
| 108 | 0x6C | l | 소문자 l (Lowercase l) | |
| 109 | 0x6D | m | 소문자 m (Lowercase m) | |
| 110 | 0x6E | n | 소문자 n (Lowercase n) | |
| 111 | 0x6F | o | 소문자 o (Lowercase o) | |
| 112 | 0x70 | p | 소문자 p (Lowercase p) | |
| 113 | 0x71 | q | 소문자 q (Lowercase q) | |
| 114 | 0x72 | r | 소문자 r (Lowercase r) | |
| 115 | 0x73 | s | 소문자 s (Lowercase s) | |
| 116 | 0x74 | t | 소문자 t (Lowercase t) | |
| 117 | 0x75 | u | 소문자 u (Lowercase u) | |
| 118 | 0x76 | v | 소문자 v (Lowercase v) | |
| 119 | 0x77 | w | 소문자 w (Lowercase w) | |
| 120 | 0x78 | x | 소문자 x (Lowercase x) | |
| 121 | 0x79 | y | 소문자 y (Lowercase y) | |
| 122 | 0x7A | z | 소문자 z (Lowercase z) | |
| 123 | 0x7B | { | 왼쪽 중괄호 (Left brace) | |
| 124 | 0x7C | | | 세로선 (Vertical bar) | |
| 125 | 0x7D | } | 오른쪽 중괄호 (Right brace) | |
| 126 | 0x7E | ~ | 물결표 (Tilde) | |
| 128 | 0x80 | | ||
| 129 | 0x81 | | ||
| 130 | 0x82 | | ||
| 131 | 0x83 | | ||
| 132 | 0x84 | | ||
| 133 | 0x85 | |||
| 134 | 0x86 | | ||
| 135 | 0x87 | | ||
| 136 | 0x88 | | ||
| 137 | 0x89 | | ||
| 138 | 0x8A | | ||
| 139 | 0x8B | | ||
| 140 | 0x8C | | ||
| 141 | 0x8D | | ||
| 142 | 0x8E | | ||
| 143 | 0x8F | | ||
| 144 | 0x90 | | ||
| 145 | 0x91 | | ||
| 146 | 0x92 | | ||
| 147 | 0x93 | | ||
| 148 | 0x94 | | ||
| 149 | 0x95 | | ||
| 150 | 0x96 | | ||
| 151 | 0x97 | | ||
| 152 | 0x98 | | ||
| 153 | 0x99 | | ||
| 154 | 0x9A | | ||
| 155 | 0x9B | | ||
| 156 | 0x9C | | ||
| 157 | 0x9D | | ||
| 158 | 0x9E | | ||
| 159 | 0x9F | | ||
| 160 | 0xA0 | |||
| 161 | 0xA1 | ¡ | ||
| 162 | 0xA2 | ¢ | ||
| 163 | 0xA3 | £ | ||
| 164 | 0xA4 | ¤ | ||
| 165 | 0xA5 | ¥ | ||
| 166 | 0xA6 | ¦ | ||
| 167 | 0xA7 | § | ||
| 168 | 0xA8 | ¨ | ||
| 169 | 0xA9 | © | ||
| 170 | 0xAA | ª | ||
| 171 | 0xAB | « | ||
| 172 | 0xAC | ¬ | ||
| 173 | 0xAD | | ||
| 174 | 0xAE | ® | ||
| 175 | 0xAF | ¯ | ||
| 176 | 0xB0 | ° | ||
| 177 | 0xB1 | ± | ||
| 178 | 0xB2 | ² | ||
| 179 | 0xB3 | ³ | ||
| 180 | 0xB4 | ´ | ||
| 181 | 0xB5 | µ | ||
| 182 | 0xB6 | ¶ | ||
| 183 | 0xB7 | · | ||
| 184 | 0xB8 | ¸ | ||
| 185 | 0xB9 | ¹ | ||
| 186 | 0xBA | º | ||
| 187 | 0xBB | » | ||
| 188 | 0xBC | ¼ | ||
| 189 | 0xBD | ½ | ||
| 190 | 0xBE | ¾ | ||
| 191 | 0xBF | ¿ | ||
| 192 | 0xC0 | À | ||
| 193 | 0xC1 | Á | ||
| 194 | 0xC2 | Â | ||
| 195 | 0xC3 | Ã | ||
| 196 | 0xC4 | Ä | ||
| 197 | 0xC5 | Å | ||
| 198 | 0xC6 | Æ | ||
| 199 | 0xC7 | Ç | ||
| 200 | 0xC8 | È | ||
| 201 | 0xC9 | É | ||
| 202 | 0xCA | Ê | ||
| 203 | 0xCB | Ë | ||
| 204 | 0xCC | Ì | ||
| 205 | 0xCD | Í | ||
| 206 | 0xCE | Î | ||
| 207 | 0xCF | Ï | ||
| 208 | 0xD0 | Ð | ||
| 209 | 0xD1 | Ñ | ||
| 210 | 0xD2 | Ò | ||
| 211 | 0xD3 | Ó | ||
| 212 | 0xD4 | Ô | ||
| 213 | 0xD5 | Õ | ||
| 214 | 0xD6 | Ö | ||
| 215 | 0xD7 | × | ||
| 216 | 0xD8 | Ø | ||
| 217 | 0xD9 | Ù | ||
| 218 | 0xDA | Ú | ||
| 219 | 0xDB | Û | ||
| 220 | 0xDC | Ü | ||
| 221 | 0xDD | Ý | ||
| 222 | 0xDE | Þ | ||
| 223 | 0xDF | ß | ||
| 224 | 0xE0 | à | ||
| 225 | 0xE1 | á | ||
| 226 | 0xE2 | â | ||
| 227 | 0xE3 | ã | ||
| 228 | 0xE4 | ä | ||
| 229 | 0xE5 | å | ||
| 230 | 0xE6 | æ | ||
| 231 | 0xE7 | ç | ||
| 232 | 0xE8 | è | ||
| 233 | 0xE9 | é | ||
| 234 | 0xEA | ê | ||
| 235 | 0xEB | ë | ||
| 236 | 0xEC | ì | ||
| 237 | 0xED | í | ||
| 238 | 0xEE | î | ||
| 239 | 0xEF | ï | ||
| 240 | 0xF0 | ð | ||
| 241 | 0xF1 | ñ | ||
| 242 | 0xF2 | ò | ||
| 243 | 0xF3 | ó | ||
| 244 | 0xF4 | ô | ||
| 245 | 0xF5 | õ | ||
| 246 | 0xF6 | ö | ||
| 247 | 0xF7 | ÷ | ||
| 248 | 0xF8 | ø | ||
| 249 | 0xF9 | ù | ||
| 250 | 0xFA | ú | ||
| 251 | 0xFB | û | ||
| 252 | 0xFC | ü | ||
| 253 | 0xFD | ý | ||
| 254 | 0xFE | þ | ||
| 255 | 0xFF | ÿ |
ASCII 코드란?
ASCII (미국 정보 교환 표준 코드)는 라틴 문자를 기반으로 한 문자 인코딩 표준입니다. 처음에는 전보 통신에 사용되었으며 후에 컴퓨터 분야에서 가장 기초적인 문자 인코딩 시스템이 되었습니다. 표준 ASCII는 128개 문자 (0-127)를 포함하며 33개 제어 문자와 95개 인쇄 가능 문자가 있습니다. 제어 문자는 화면에 보이지 않지만 줄바꿈, 탭, 통신 제어에 영향을 주므로 로그 분석이나 인코딩 문제를 확인할 때 코드값과 의미를 함께 보는 것이 중요합니다.
사용 방법
기본 조작
- 값이나 문자를 클릭하면 복사됩니다
- 검색 상자를 사용하여 특정 문자를 빠르게 찾으세요
- 카테고리 버튼을 클릭하여 문자 유형별로 필터링하세요
- 문자에 마우스를 올리면 상세 설명이 표시됩니다
인코딩 참고사항
- ASCII는 0-127 범위의 문자만 포함합니다. 악센트가 있는 문자, 이모지 및 대부분의 비영어 텍스트는 UTF-8과 같은 유니코드 인코딩이 필요합니다.
- 제어 문자는 화면에 표시되지 않을 수 있지만 파일, 터미널, 프로토콜, 복사-붙여넣기 텍스트에 영향을 줄 수 있습니다.
활용 사례
기술 원리
ASCII(미국 정보 교환 표준 코드, ANSI X3.4-1968, ISO/IEC 646:1991 IRV)는 7비트 문자 인코딩으로, 0-127의 숫자 코드를 128개 문자에 할당합니다. 하위 32개 코드(0x00-0x1F)와 0x7F는 텔레타입에서 상속된 제어 문자입니다: NUL(0x00), BEL(0x07, 경고음), LF(0x0A, 줄바꿈), CR(0x0D, 캐리지 리턴), ESC(0x1B), DEL(0x7F) 등. 코드 0x20-0x7E는 인쇄 가능 문자입니다: 공백, 0x30-0x39의 숫자 0-9, 0x41-0x5A의 대문자 A-Z, 0x61-0x7A의 소문자 a-z, 그리고 그 사이의 구두점. 인코딩은 의도적으로 규칙적인 구조를 가지고 있습니다. 숫자가 클러스터되어 있습니다: '0' = 0x30, '1' = 0x31, ..., '9' = 0x39. 숫자 문자를 숫자 값으로 변환하는 것은 code - 0x30입니다. 문자도 클러스터되어 있습니다: 'A' = 0x41, 'B' = 0x42, ..., 'Z' = 0x5A, 'a' = 0x61, ..., 'z' = 0x7A. 같은 문자의 대문자와 소문자 차이는 0x20(32)이며, 이는 5번 비트가 정확히 하나 설정된 것입니다(1 << 5 = 32). 따라서 대소문자 변환은 0x20과의 단일 XOR 또는 OR/AND입니다: code ^ 0x20은 대소문자를 뒤집고, code | 0x20은 소문자로, code & 0x5F(= code & ~0x20)는 대문자로 변환합니다. 이 비트 트릭은 가장 빠른 대소문자 변환이며 strlen/strcmp 구현에서 ASCII 전용 문자열에 사용됩니다. ASCII는 7비트 텔레타입과 그 이전의 5레벨 Baudot 코드를 위해 설계되었으므로 8비트 바이트보다 앞섭니다. 8비트 '확장 ASCII' 범위(0x80-0xFF)는 표준화된 적이 없어, 수많은 코드 페이지(ISO 8859-1 Latin-1, Windows-1252, MacRoman, KOI8-R, IBM437)가 상위 절반을 차지하기 위해 경쟁했습니다. ISO 8859-1(Latin-1)이 표준에 가장 가까웠지만 유로 기호는 ISO 8859-15까지 없었습니다. C1 제어 범위(0x80-0x9F)는 예약되어야 했으나(ISO 6429), Windows-1252가 일부를 인쇄 가능 문자에 재사용했습니다 — UTF-8이 마침내 해결한 오래된 상호 운용성 골칫거리입니다. UTF-8(RFC 3629, 2003)은 Rob Pike와 Ken Thompson이 1992년에 설계한 하위 호환 상위 집합입니다: 128개 ASCII 코드는 단일 바이트로 자기 자신에 인코딩되므로(0x00-0x7F), 모든 ASCII 텍스트는 유효한 UTF-8 텍스트이기도 합니다. 0x7F 초과 코드는 특정 비트 패턴(110xxxxx 10xxxxxx, 1110xxxx 10xxxxxx 10xxxxxx, 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx)의 2, 3, 4바이트 시퀀스를 사용하여 디코더가 오류 후 바이트 단위로 재동기화할 수 있습니다. 이와 달리 EBCDIC은 IBM의 8비트 메인프레임 인코딩으로(8비트 EBCDIC은 ASCII와 같은 7비트가 아닌 8비트), 문자를 비연속 코드 포인트에 할당합니다('A' = 0xC1, 'I' = 0xC9, 'J' = 0xD1, ..., 비트 트릭과 문자열 알고리즘에 해로운 갭 존재). ISO 646의 국가 변형은 소수의 ASCII 문자를 해당 국가 특유 문자로 대체했습니다. 예를 들어 영국 변형은 0x23(미국의 '#')을 파운드 기호 '£'로, 독일 변형은 일부 구두점을 움라우트로 대체했습니다. 이것이 C의 로캘 설정과 POSIX charmap 파일이 역사적으로 중요한 이유입니다 — IRV(국제 참조 버전)와 국가 변형 간의 매핑을 제공했기 때문입니다. 이 혼란에서 벗어나는 방법은 Unicode/UTF-8로, 새 프로젝트에 대해 7비트와 8비트 논쟁 전체를 무의미하게 만듭니다.
- ASCII(ANSI X3.4-1968, ISO/IEC 646 IRV)는 문자당 7비트, 128개 코드 포인트를 사용합니다: 제어 문자 33개(0x00-0x1F, 0x7F)와 인쇄 가능 문자 95개(0x20-0x7E).
- 제어 문자(0x00-0x1F, 0x7F)는 텔레타입에서 상속되었습니다: NUL, BEL(0x07, 경고음), LF(0x0A), CR(0x0D), ESC(0x1B), DEL(0x7F). 현대 텍스트도 LF와 CR을 사용하며 나머지는 대부분 역사적 유물입니다.
- 인쇄 가능 문자 배치: 공백(0x20), 숫자 '0'-'9'(0x30-0x39), 대문자 'A'-'Z'(0x41-0x5A), 소문자 'a'-'z'(0x61-0x7A), 사이의 구두점. '5'를 5로 변환하려면 code - 0x30; 대문자에서 소문자로는 code | 0x20.
- 대소문자 변환은 단일 비트 연산입니다: XOR 0x20은 뒤집고, OR 0x20은 소문자로, AND 0x5F(= code & ~0x20)는 대문자로. 어떤 언어에서든 가장 빠른 대소문자 변환이며 strlen/strcmp가 ASCII 전용 버퍼에서 이렇게 동작합니다.
- 8비트 확장(0x80-0xFF)은 표준화된 적이 없어, Windows-1252, ISO-8859-1, MacRoman, KOI8-R, IBM437이 상위 절반을 각각 다르게 정의했습니다. Windows-1252가 웹에서 승리하여 대부분의 레거시 코드가 사용하는 사실상의 '확장 ASCII'가 되었습니다.
- UTF-8(RFC 3629, Pike & Thompson 1992)은 ASCII의 엄격한 상위 집합입니다: 128개 ASCII 코드 포인트는 1바이트로 자기 자신에 인코딩되고, U+007F 초과 코드 포인트는 110xxxxx 10xxxxxx 연속 바이트를 사용하는 2-4바이트를 사용하므로, 디코더가 오류 후 바이트 단위로 재동기화할 수 있습니다.
- EBCDIC(IBM, 1960년대 메인프레임)은 IBM z/OS에서 사용되는 ASCII의 8비트 대안입니다. 문자 위치가 연속적이지 않아('A'=0xC1, 'I'=0xC9, 'J'=0xD1) ASCII의 대소문자 변환 트릭이 작동하지 않으며, tolower() 같은 비트 시프트 알고리즘에 테이블 조회가 필요합니다.
- ISO 646 국가 변형(영국, 독일, 스웨덴 등)은 소수의 ASCII 문자를 해당 국가 특유 문자로 대체했습니다: 영국 변형은 0x23의 '#'을 '£'로 교체했고, 독일 변형은 구두점을 움라우트로 교체했습니다. 유니코드 이전 현지화의 축약판.
예시
문자 빠른 조회
문자: 'A'
10진수: 65
16진수: 0x41
2진수: 01000001
8진수: 0101
C 이스케이프: \x41 (C / C++ / Python / JavaScript에서 '\x41')
대문자와 소문자의 차이는 0x20 (10진수 32):
'a' = 0x61 (97) = 'A' (0x41) + 0x20
'A' = 0x41 (65) = 'a' (0x61) - 0x20
비트 5(마스크 0x20)를 토글하면 알파벳 대소문자가 전환되는 이유입니다.
ch ^ 0x20 A <-> a 전환 (A-Z, a-z에 동작, 다른 문자는 변경하지 않음)줄바꿈 문제 디버깅
LF (0x0A, 10진수 10) - Unix, Linux, 최신 macOS '\n'
CR (0x0D, 10진수 13) - 클래식 Mac OS (OS X 이전), 일부 네트워크 프로토콜 '\r'
CRLF (0x0D 0x0A, '13 10') - Windows, HTTP, SMTP, FTP '\r\n'
Windows에서 저장한 'hi\r\n' 파일의 16진수 덤프:
0000: 68 69 0d 0a hi..
같은 내용을 Linux에서 저장한 ('hi\n') 파일의 16진수 덤프:
0000: 68 69 0a hi.
줄 수 계산에 미치는 영향:
$ wc -l windows.txt unix.txt
1 windows.txt (줄바꿈 1개, 0x0D 0x0A)
1 unix.txt (줄바꿈 1개, 0x0A)
바이트 수가 다르며(4 vs 3), dos2unix 같은 도구는 0x0D 0x0A 쌍을
찾아 0x0D를 제거하는 방식으로 변환합니다.URL 인코딩 참고
RFC 3986 unreserved + reserved 문자 집합 (나머지는 percent-encode 필요):
unreserved A-Z a-z 0-9 - _ . ~
reserved ! * ' ( ) ; : @ & = + $ , / ? # [ ]
그 외 모든 문자는 %HH 형식으로 인코딩 (HH는 두 자리 대문자 16진수)
자주 쓰는 문자:
공백 0x20 -> %20 (application/x-www-form-urlencoded에서는 '+')
! 0x21 -> %21
" 0x22 -> %22
# 0x23 -> %23
$ 0x24 -> %24
% 0x25 -> %25
& 0x26 -> %26 (쿼리 문자열의 구분자 - 값 안에서는 항상 인코딩)
' 0x27 -> %27
( 0x28 -> %28
) 0x29 -> %29
+ 0x2B -> %2B (폼 본문에서는 %20; '+'가 공백을 의미)
, 0x2C -> %2C
/ 0x2F -> %2F (path에서는 reserved, query에서는 대체로 안전)
: 0x3A -> %3A
; 0x3B -> %3B
= 0x3D -> %3D
? 0x3F -> %3F
@ 0x40 -> %40
예시: https://example.com/path with space and ampersand
인코딩: https://example.com/path%20with%20space%20%26%20ampersand제어 문자 이스케이프와 정규식 메타문자
C / Python / JavaScript 문자열에서 자주 쓰는 제어 코드와 이스케이프 형식:
NUL 0x00 '\0' (C에서 문자열 종결자)
BEL 0x07 '\a' (터미널 벨)
BS 0x08 '\b' (백스페이스)
TAB 0x09 '\t' (가로 탭)
LF 0x0A '\n' (줄바꿈)
VT 0x0B '\v' (세로 탭)
FF 0x0C '\f' (폼 피드)
CR 0x0D '\r' (캐리지 리턴)
ESC 0x1B '\x1b' / '\e' (POSIX) (이스케이프 시퀀스 시작)
DEL 0x7F '\x7f' (삭제)
반드시 \로 이스케이프해야 하는 정규식 메타문자:
^ $ . | ? * + ( ) [ ] { } \
위 표를 그대로 출력하는 JavaScript 코드:
const ctrl = { 0:'NUL', 9:'TAB', 10:'LF', 13:'CR', 27:'ESC', 32:'SP', 127:'DEL' };
for (const [code, name] of Object.entries(ctrl)) {
console.log(`${code.toString().padStart(3)} 0x${(+code).toString(16).padStart(2,'0')} ${name}`);
}
// -> ' 0x20 SP' 0a LF 0d CR 등자주 묻는 질문
ASCII 테이블의 크기는 어떻게 되나요?
표준 ASCII는 128개의 코드 포인트(0~127)를 가집니다. 이 중 33개는 제어 문자(0~31과 127 DEL), 95개는 출력 가능 문자(공백부터 ~까지)입니다. '확장 ASCII'는 Windows-1252나 ISO-8859-1처럼 256개 코드 포인트를 가진 다양한 단일 바이트 인코딩을 가리키는 말이며, 엄밀히 말하면 ASCII가 아닙니다.
32번 문자가 보이는 글자가 아니라 'Space'로 표시되는 이유는 무엇인가요?
코드 포인트 32(0x20)는 공백 문자 자체입니다. 출력은 가능하지만 눈에 보이지 않기 때문에, 복사할 수 있도록 'SP' 또는 'Space'라는 라벨을 표시합니다. 해당 행을 클릭하면 실제 공백 문자가 클립보드에 복사됩니다.
처음 32개 ASCII 코드는 어떤 용도로 쓰이나요?
텔레프린터 시대의 제어 문자들로, TAB(9), LF(10), CR(13), ESC(27) 등이 있습니다. 현대 소프트웨어에서도 TAB, LF, CR, NUL(0)은 여전히 사용되지만, 나머지(BEL, ACK, ENQ 등)는 대부분 역사적 유산이며 시리얼 프로토콜이나 바이너리 파일 헤더에서나 볼 수 있습니다.
ASCII와 UTF-8은 같은 건가요?
ASCII는 영어용 7비트 인코딩입니다. UTF-8은 가변 길이 인코딩으로, 처음 128개 코드 포인트에 대해서는 ASCII와 바이트 단위로 호환됩니다. 따라서 순수 ASCII 파일은 그대로 유효한 UTF-8 파일이기도 합니다. UTF-8은 2~4바이트 시퀀스를 통해 나머지 유니코드 영역까지 확장합니다.
한 문자에 대해 10진수, 16진수, 2진수를 어떻게 변환하나요?
행을 선택하면 네 가지 표현이 모두 표시됩니다. 예를 들어 'A'는 10진수 65, 16진수 0x41, 8진수 0101, 2진수 01000001입니다. Char 열은 글자 자체를 보여주고, Description 열은 공식 유니코드 이름을 알려줍니다.
이 표에 é, ñ, 中이 없는 이유는 무엇인가요?
이 문자들은 ASCII 범위를 벗어나기 때문입니다. é와 ñ은 Latin-1에 속하며(코드 포인트 233과 241), 中은 CJK 통합 한자(U+4E2D)에 속합니다. ASCII는 127까지만 다루므로 이런 문자들은 유니코드 조회 도구를 사용하세요.
ASCII 코드만 알고 있을 때 해당 문자를 어떻게 입력하나요?
Windows에서는 Alt 키를 누른 상태로 숫자 키패드에 10진수 코드를 입력하면 됩니다(A는 Alt+65). macOS와 Linux에서는 이 표에서 복사해 붙여넣거나 입력기의 16진수 코드 기능을 사용하세요. 코드에서는 \xNN(16진수), \NNN(8진수), Python의 chr(N), JavaScript의 String.fromCharCode(N)를 사용합니다.