ตาราง ASCII — ทศนิยม, Hex, ไบนารี
เรียกดูรหัส ASCII ทั้ง 128 ตัว (0–127) พร้อมการแสดงผลในรูปทศนิยม เลขฐานสิบหก ออกทัล และไบนารี อักขระควบคุม (0–31, 127) แสดงไฮไลต์พร้อมคำย่อมาตรฐานและชื่อเต็ม กรองเพื่อแสดงเฉพาะอักขระที่พิมพ์ได้หรือเฉพาะรหัสควบคุม และค้นหาด้วยตัวเลขทศนิยม ค่า hex หรืออักขระ
| ทศนิยม | Hex | อักขระ | คำอธิบาย |
|---|---|---|---|
| 0 | 0x00 | NUL | NUL — Null |
| 1 | 0x01 | SOH | SOH — Start of Heading |
| 2 | 0x02 | STX | STX — Start of Text |
| 3 | 0x03 | ETX | ETX — End of Text |
| 4 | 0x04 | EOT | EOT — End of Transmission |
| 5 | 0x05 | ENQ | ENQ — Enquiry |
| 6 | 0x06 | ACK | ACK — Acknowledge |
| 7 | 0x07 | BEL | BEL — Bell |
| 8 | 0x08 | BS | BS — Backspace |
| 9 | 0x09 | HT | HT — Horizontal Tab |
| 10 | 0x0A | LF | LF — Line Feed |
| 11 | 0x0B | VT | VT — Vertical Tab |
| 12 | 0x0C | FF | FF — Form Feed |
| 13 | 0x0D | CR | CR — Carriage Return |
| 14 | 0x0E | SO | SO — Shift Out |
| 15 | 0x0F | SI | SI — Shift In |
| 16 | 0x10 | DLE | DLE — Data Link Escape |
| 17 | 0x11 | DC1 | DC1 — Device Control 1 (XON) |
| 18 | 0x12 | DC2 | DC2 — Device Control 2 |
| 19 | 0x13 | DC3 | DC3 — Device Control 3 (XOFF) |
| 20 | 0x14 | DC4 | DC4 — Device Control 4 |
| 21 | 0x15 | NAK | NAK — Negative Acknowledge |
| 22 | 0x16 | SYN | SYN — Synchronous Idle |
| 23 | 0x17 | ETB | ETB — End of Transmission Block |
| 24 | 0x18 | CAN | CAN — Cancel |
| 25 | 0x19 | EM | EM — End of Medium |
| 26 | 0x1A | SUB | SUB — Substitute |
| 27 | 0x1B | ESC | ESC — Escape |
| 28 | 0x1C | FS | FS — File Separator |
| 29 | 0x1D | GS | GS — Group Separator |
| 30 | 0x1E | RS | RS — Record Separator |
| 31 | 0x1F | US | US — Unit Separator |
| 32 | 0x20 | SP — Space | |
| 33 | 0x21 | ! | |
| 34 | 0x22 | " | |
| 35 | 0x23 | # | |
| 36 | 0x24 | $ | |
| 37 | 0x25 | % | |
| 38 | 0x26 | & | |
| 39 | 0x27 | ' | |
| 40 | 0x28 | ( | |
| 41 | 0x29 | ) | |
| 42 | 0x2A | * | |
| 43 | 0x2B | + | |
| 44 | 0x2C | , | |
| 45 | 0x2D | - | |
| 46 | 0x2E | . | |
| 47 | 0x2F | / | |
| 48 | 0x30 | 0 | |
| 49 | 0x31 | 1 | |
| 50 | 0x32 | 2 | |
| 51 | 0x33 | 3 | |
| 52 | 0x34 | 4 | |
| 53 | 0x35 | 5 | |
| 54 | 0x36 | 6 | |
| 55 | 0x37 | 7 | |
| 56 | 0x38 | 8 | |
| 57 | 0x39 | 9 | |
| 58 | 0x3A | : | |
| 59 | 0x3B | ; | |
| 60 | 0x3C | < | |
| 61 | 0x3D | = | |
| 62 | 0x3E | > | |
| 63 | 0x3F | ? | |
| 64 | 0x40 | @ | |
| 65 | 0x41 | A | |
| 66 | 0x42 | B | |
| 67 | 0x43 | C | |
| 68 | 0x44 | D | |
| 69 | 0x45 | E | |
| 70 | 0x46 | F | |
| 71 | 0x47 | G | |
| 72 | 0x48 | H | |
| 73 | 0x49 | I | |
| 74 | 0x4A | J | |
| 75 | 0x4B | K | |
| 76 | 0x4C | L | |
| 77 | 0x4D | M | |
| 78 | 0x4E | N | |
| 79 | 0x4F | O | |
| 80 | 0x50 | P | |
| 81 | 0x51 | Q | |
| 82 | 0x52 | R | |
| 83 | 0x53 | S | |
| 84 | 0x54 | T | |
| 85 | 0x55 | U | |
| 86 | 0x56 | V | |
| 87 | 0x57 | W | |
| 88 | 0x58 | X | |
| 89 | 0x59 | Y | |
| 90 | 0x5A | Z | |
| 91 | 0x5B | [ | |
| 92 | 0x5C | \ | |
| 93 | 0x5D | ] | |
| 94 | 0x5E | ^ | |
| 95 | 0x5F | _ | |
| 96 | 0x60 | ` | |
| 97 | 0x61 | a | |
| 98 | 0x62 | b | |
| 99 | 0x63 | c | |
| 100 | 0x64 | d | |
| 101 | 0x65 | e | |
| 102 | 0x66 | f | |
| 103 | 0x67 | g | |
| 104 | 0x68 | h | |
| 105 | 0x69 | i | |
| 106 | 0x6A | j | |
| 107 | 0x6B | k | |
| 108 | 0x6C | l | |
| 109 | 0x6D | m | |
| 110 | 0x6E | n | |
| 111 | 0x6F | o | |
| 112 | 0x70 | p | |
| 113 | 0x71 | q | |
| 114 | 0x72 | r | |
| 115 | 0x73 | s | |
| 116 | 0x74 | t | |
| 117 | 0x75 | u | |
| 118 | 0x76 | v | |
| 119 | 0x77 | w | |
| 120 | 0x78 | x | |
| 121 | 0x79 | y | |
| 122 | 0x7A | z | |
| 123 | 0x7B | { | |
| 124 | 0x7C | | | |
| 125 | 0x7D | } | |
| 126 | 0x7E | ~ | |
| 127 | 0x7F | DEL | DEL — Delete |
แสดง 128 จาก 128 รหัส ASCII
วิธีการทำงาน
ASCII คืออะไร?
ASCII (American Standard Code for Information Interchange) คือมาตรฐานการเข้ารหัสอักขระที่เผยแพร่ครั้งแรกในปี ค.ศ. 1963 กำหนดอักขระจำนวน 128 ตัว ประกอบด้วยอักขระควบคุมที่ไม่พิมพ์ได้ 33 ตัว (รหัส 0–31 และ 127) และอักขระที่พิมพ์ได้ 95 ตัว (รหัส 32–126) รวมถึงตัวอักษรภาษาอังกฤษพิมพ์ใหญ่และพิมพ์เล็ก ตัวเลข 0–9 และเครื่องหมายวรรคตอนทั่วไป ASCII กลายเป็นรากฐานของการเข้ารหัสข้อความสมัยใหม่เกือบทั้งหมด รวมถึง UTF-8 ที่เข้ากันได้กับ ASCII ในสำหรับ 128 จุดรหัสแรก
อักขระ ASCII แต่ละตัวได้รับค่าจำนวนเต็ม 7 บิต ซึ่งเป็นเหตุผลที่ตารางสิ้นสุดที่ 127 (2⁷ − 1) เมื่อจัดเก็บในไบต์ 8 บิต บิตนำหน้าของ ASCII มาตรฐานมักเป็น 0 ช่วง ASCII ขยาย (128–255) ไม่ได้มาตรฐานตามข้อกำหนดดั้งเดิมและแตกต่างกันตามหน้ารหัส — ISO 8859-1, Windows-1252 และการเข้ารหัสที่คล้ายกันต่างกำหนดชุดอักขระที่แตกต่างกันสำหรับครึ่งบนของไบต์
อักขระควบคุม (0–31 และ 127)
รหัส ASCII 32 ตัวแรกและรหัส 127 คืออักขระควบคุมที่ไม่พิมพ์ได้ซึ่งสืบทอดมาจากแบบแผนของเครื่องโทรพิมพ์ อักขระส่วนใหญ่เลิกใช้แล้วในการประมวลผลสมัยใหม่ แต่บางตัวยังคงมีความสำคัญ ได้แก่ รหัส 9 (HT แท็บแนวนอน), รหัส 10 (LF การป้อนบรรทัดหรือขึ้นบรรทัดใหม่ใน Unix/Linux), รหัส 13 (CR carriage return ใช้ใน Windows line endings เป็น CR+LF), รหัส 27 (ESC Escape ใช้ใน terminal escape sequences) และรหัส 127 (DEL) อักขระเหล่านี้จะไม่แสดงผลเป็นรูปสัญลักษณ์ที่มองเห็นได้
บนระบบ Unix-like คุณสามารถสร้างอักขระควบคุมในเทอร์มินัลโดยกด Ctrl ค้างไว้พร้อมกับกดตัวอักษรที่สอดคล้องกัน: Ctrl+A = SOH (1), Ctrl+C = ETX (3 ส่งสัญญาณขัดจังหวะ), Ctrl+D = EOT (4 ส่งสัญญาณสิ้นสุดการป้อนข้อมูล), Ctrl+J = LF (10), Ctrl+M = CR (13), Ctrl+Z = SUB (26 หยุดกระบวนการชั่วคราวใน Unix) การเข้าใจรหัสเหล่านี้จำเป็นสำหรับ I/O ระดับต่ำ terminal control sequences และการใช้งาน network protocols
ASCII ในการเขียนโปรแกรมและการพัฒนาเว็บ
ใน JavaScript คุณสามารถรับรหัส ASCII ของอักขระโดยใช้ charCodeAt(0): 'A'.charCodeAt(0) คืนค่า 65 สำหรับการแปลงกลับ ใช้ String.fromCharCode(65) เพื่อรับ 'A' ใน Python ord('A') คืนค่า 65 และ chr(65) คืนค่า 'A' ใน C ค่า char คือจำนวนเต็มและสามารถใช้โดยตรงในการคำนวณ: 'A' + 1 เท่ากับ 'B'
ค่า ASCII เป็นพื้นฐานของรูปแบบการเขียนโปรแกรมทั่วไปหลายอย่าง ความแตกต่างระหว่างตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กคือ 32 เสมอ: 'a' (97) = 'A' (65) + 32 ตัวเลข 0–9 อยู่ที่รหัส 48–57 ดังนั้นการลบ 48 จากค่า ASCII ของตัวอักขระตัวเลขจะให้ค่าตัวเลขของมัน URL encoding แสดงอักขระที่ไม่ปลอดภัยสำหรับ URL เป็น %XX โดย XX คือรหัส ASCII ในรูป hex ทำให้ตารางนี้จำเป็นสำหรับการดีบัก URL-encoded strings และ HTTP headers
คำถามที่พบบ่อย
›รหัส ASCII สำหรับ Enter / บรรทัดใหม่คืออะไร?
อักขระบรรทัดใหม่ (line feed) คือรหัส ASCII 10 (0x0A, LF) บน Unix/Linux/macOS บรรทัดใหม่แสดงด้วย LF เพียงตัวเดียว บน Windows แสดงด้วย CR+LF (รหัส 13 และ 10 หรือ 0x0D 0x0A) อักขระ carriage return คือรหัส 13 (0x0D, CR) เมื่อเขียนโค้ดประมวลผลข้อความข้ามแพลตฟอร์ม ควรจัดการทั้ง LF และ CR+LF line endings เสมอ
›รหัส ASCII สำหรับอักขระช่องว่างคืออะไร?
อักขระช่องว่างคือรหัส ASCII 32 (0x20, SP) เป็นอักขระที่พิมพ์ได้ตัวแรกใน ASCII Non-breaking space (ใช้ใน HTML เป็น ) ไม่ใช่ส่วนหนึ่งของ ASCII มาตรฐาน 7 บิต — มีรหัสเป็น 160 (0xA0) ใน ISO 8859-1 และเข้ารหัสเป็น 0xC2 0xA0 ใน UTF-8
›ASCII, UTF-8 และ Unicode แตกต่างกันอย่างไร?
ASCII กำหนด 128 อักขระด้วยรหัส 7 บิต Unicode เป็นมาตรฐานสากลที่กำหนดอักขระกว่า 140,000 ตัวด้วยจุดรหัสถึง U+10FFFF UTF-8 คือการเข้ารหัสความกว้างแปรผันของ Unicode โดยเข้ารหัสอักขระ ASCII (0–127) ในไบต์เดียว ทำให้เข้ากันได้กับ ASCII อักขระที่เกิน 127 ใช้ 2–4 ไบต์ใน UTF-8 ระบบข้อความสมัยใหม่ใช้ UTF-8 หรือ UTF-16 แต่ ASCII ยังคงสำคัญสำหรับ protocol headers, file formats และ legacy systems
›จะหารหัส ASCII ของอักขระใน JavaScript ได้อย่างไร?
ใช้ charCodeAt(0): 'A'.charCodeAt(0) คืนค่า 65 สำหรับจุดรหัส Unicode ที่เกิน 65535 ให้ใช้ codePointAt(0) แทน สำหรับการแปลงรหัสกลับเป็นอักขระ: String.fromCharCode(65) คืนค่า 'A' สำหรับการรองรับ Unicode เต็มรูปแบบ: String.fromCodePoint(128512) คืนค่าอีโมจิ 😀
›รหัส ASCII 0 (NUL) ทำงานอย่างไร?
NUL (รหัส 0) คืออักขระว่าง ใน C และภาษาอื่นๆ อีกมากมาย ใช้เป็นตัวสิ้นสุดสตริง — สตริง 'Hello' จัดเก็บในหน่วยความจำเป็นไบต์ 72, 101, 108, 108, 111, 0 ในฐานข้อมูลและรูปแบบไฟล์ NUL อาจปรากฏเป็นตัวคั่นฟิลด์หรือไบต์เติมเต็ม ในโปรแกรมแก้ไขข้อความและเทอร์มินัลส่วนใหญ่ NUL มองไม่เห็นและถูกละเว้น แต่อาจทำให้เกิดปัญหาเมื่ออ่านไฟล์ไบนารีเป็นข้อความ
›อักขระ Escape (ASCII 27) คืออะไร?
ESC (รหัส 27, 0x1B) คืออักขระ Escape เป็นจุดเริ่มต้นของ ANSI/VT100 escape sequences ที่ควบคุมสีเทอร์มินัลและการเคลื่อนที่ของเคอร์เซอร์ เช่น ลำดับ ESC[31m เปลี่ยนสีข้อความเทอร์มินัลเป็นสีแดง ในหลายแอปพลิเคชัน การกดปุ่ม Escape จะส่งอักขระนี้ ยังใช้ในรูปแบบข้อมูลและโปรโตคอลการสื่อสารต่างๆ ด้วย
›เหตุใดตัวพิมพ์ใหญ่ A มีรหัส ASCII 65 และตัวพิมพ์เล็ก a มีรหัส 97?
ตาราง ASCII ออกแบบให้ตัวพิมพ์ใหญ่ (A=65, B=66, ..., Z=90) และตัวพิมพ์เล็ก (a=97, b=98, ..., z=122) แตกต่างกันพอดี 32 ซึ่งช่วยให้แปลงระหว่างตัวพิมพ์ใหญ่และเล็กได้ด้วยการบวกหรือลบครั้งเดียว สำหรับการแปลงตัวพิมพ์ใหญ่เป็นพิมพ์เล็กใน ASCII: บวก 32 (หรือตั้งค่า bit 5) สำหรับการแปลงตัวพิมพ์เล็กเป็นพิมพ์ใหญ่: ลบ 32 (หรือล้าง bit 5) นี่คือเหตุผลที่การแปลงตัวพิมพ์ด้วย bitwise ใช้งานได้ใน C: char lower = upper | 0x20
›CR, LF และ CRLF แตกต่างกันอย่างไร?
CR (Carriage Return, รหัส 13) และ LF (Line Feed, รหัส 10) มีต้นกำเนิดจากแบบแผนของเครื่องพิมพ์ดีดและโทรพิมพ์ CR เลื่อนหัวพิมพ์ไปยังจุดเริ่มต้นของบรรทัด LF เลื่อนไปยังบรรทัดถัดไป Unix/Linux ใช้ LF เพียงตัวเดียวสำหรับบรรทัดใหม่ Windows ใช้ CR+LF (ทั้งสองร่วมกัน) Mac OS คลาสสิก (ก่อน OS X) ใช้ CR เพียงตัวเดียว โปรแกรมแยกวิเคราะห์สมัยใหม่ส่วนใหญ่จัดการทั้งสามรูปแบบได้ แต่การผสม line endings ในไฟล์ source อาจทำให้เกิดปัญหากับ version control diffs และ text processors บางตัว
เครื่องมือที่เกี่ยวข้อง
อัปเดตล่าสุด: