Bảng tham chiếu ASCII

Mọi ký tự in được bạn gõ bằng tiếng Anh ánh xạ tới một số từ 32 đến 126 trong chuẩn ASCII bảy bit. Dưới 32 và tại 127 là các mã điều khiển, LF, CR, ESC, DEL và phần còn lại, vẫn quan trọng khi bạn gỡ lỗi giao thức nối tiếp hoặc sửa ký tự kết thúc dòng. Bảng tham chiếu này cung cấp mọi điểm mã từ 0 đến 127 cùng dạng thập phân, thập lục phân, bát phân, nhị phân và HTML entity.

Cách dùng bảng ASCII

  1. 1

    Quét hàng chứa ký tự bạn cần

    Tìm theo chữ cái, ký hiệu hoặc tên code-point. Mã điều khiển được liệt kê bằng mnemonic ba chữ cái.

  2. 2

    Đọc ngang sang mã hóa bạn cần

    Thập phân cho mã dễ đọc với con người, thập lục phân cho mã nguồn, nhị phân cho công việc giao thức, HTML entity cho markup.

  3. 3

    Sao chép bất kỳ ô nào

    Hữu ích khi bạn nhận một hex dump hoặc chuỗi byte và cần biết nó đọc thành gì.

Ba dải của ASCII

Dải Thập phân Nội dung
Điều khiển 0-31, 127 NUL, BEL, BS, HT, LF, VT, FF, CR, ESC, DEL, các mã khác
In được 32-126 Dấu cách, dấu câu, chữ số, A-Z, a-z
Mở rộng (không phải ASCII) 128+ Phụ thuộc vào mã hóa; ASCII nghiêm ngặt dừng ở 127

Các mã điều khiển vẫn còn quan trọng

  • 0x00 NUL, Kết thúc chuỗi trong C, padding trong một số định dạng binary.
  • 0x07 BEL, Làm terminal phát chuông.
  • 0x08 BS, Backspace.
  • 0x09 HT, Tab ngang.
  • 0x0A LF, Line feed, newline của Unix.
  • 0x0D CR, Carriage return; đi cùng LF trên Windows thành CRLF.
  • 0x1B ESC, Bắt đầu chuỗi ANSI escape cho màu terminal.
  • 0x7F DEL, Ban đầu là mã để đục lỗ băng; nay hiếm dùng.

ASCII so với Unicode

Unicode giữ nguyên ý nghĩa của 128 điểm mã đầu tiên theo ASCII. UTF-8 cũng mã hóa các giá trị này bằng đúng một byte tương ứng, vì vậy tệp UTF-8 chỉ chứa ký tự ASCII sẽ giống từng byte với cách biểu diễn ASCII. Tuy nhiên, không phải mọi bảng mã ký tự đều dùng giá trị byte của ASCII; EBCDIC là một ví dụ ngược lại quen thuộc.

Chuyển đổi thường gặp

  • Thập phân sang thập lục phân: 65 (thập phân) = 0x41 = A
  • Thập lục phân sang nhị phân: 0x41 = 0100 0001
  • Thập lục phân sang HTML entity: A hoặc A đều render thành A

Câu hỏi thường gặp

ASCII là mã 7 bit, để bit thứ tám của byte dành cho parity hoặc phần mở rộng. Giá trị 128-255 thuộc về các biến thể “extended ASCII” (Latin-1, Windows-1252, MacRoman, v.v.), tất cả không tương thích với nhau, đó là một phần lý do Unicode thắng.

LF (0x0A) xuống một dòng; CR (0x0D) đưa con trỏ về cột zero. Trên Unix, newline chỉ là LF; trên Mac cổ điển từng là CR; trên Windows và HTTP headers là CR theo sau bởi LF (CRLF). Không khớp giữa các hệ thống là nguyên nhân kinh điển của văn bản bị cách dòng đôi hoặc dính liền.

Chữ hoa ASCII nằm trong khoảng 65-90 và chữ thường trong khoảng 97-122, cách nhau đúng 0x20. Sau khi xác nhận byte thực sự là một chữ cái ASCII, chương trình có thể đặt, xóa hoặc đảo bit 0x20 để đổi hoa-thường. Áp dụng XOR 0x20 một cách tùy tiện cho mọi byte là không an toàn vì nó cũng làm thay đổi chữ số, dấu câu và mã điều khiển.

Có: LF và CR trong tệp văn bản, HT và FF trong mã nguồn và terminal, ESC trong chuỗi màu ANSI, BEL trong chuông terminal và cảnh báo. NUL vẫn kết thúc chuỗi C. Phần còn lại chủ yếu là di sản từ thời teletype.

Công cụ liên quan