Chuyển đổi Text sang ASCII
Tra cứu và đổi ký tự văn bản thành các giá trị số mã ASCII.
Vào năm 1963, một ủy ban tiêu chuẩn đã thống nhất chọn số 65 để đại diện cho chữ cái A trên mọi hệ thống máy tính tính toán. Quyết định đó hình thành nên bảng mã ASCII, nền tảng số hóa cho bàn phím và các tệp văn bản từ trước đến nay.
Tiêu chuẩn bảy bit cho bảng mã ASCII
Bảng mã ASCII gán cho mỗi chữ cái, chữ số, dấu câu và lệnh điều khiển một con số từ 0 đến 127, vừa vặn trong bảy bit. Cấu trúc này tạo ra 128 giá trị khả dụng, đủ cho bảng chữ cái tiếng Anh ở cả dạng chữ hoa lẫn chữ thường, mười chữ số, các dấu câu thông dụng và những tín hiệu điều khiển của thiết bị viễn thông cũ.
Các mã điều khiển này vẫn giữ vai trò thiết yếu: mã 10 dùng cho ngắt dòng, mã 13 dùng cho thao tác về đầu dòng và mã 9 biểu thị phím tab. Mỗi lần tệp văn bản xuống dòng, hệ thống đều áp dụng mã ký tự được quy ước từ tiêu chuẩn năm 1963.
Quy tắc chênh lệch 32 đơn vị trong bảng mã ASCII
Chữ cái A mang giá trị 65 trong khi chữ thường a là 97. Khoảng cách chênh lệch 32 không phải ngẫu nhiên mà tương ứng với một bit nhị phân, bởi 32 tương đương 2 lũy thừa năm. Mọi cặp chữ cái đều vận hành theo quy tắc này: B là 66 còn b là 98, Z là 90 và z tương ứng 122.
Khoảng cách cố định này giúp việc hoán đổi chữ hoa chữ thường trong lập trình diễn ra bằng việc đảo một bit duy nhất thay vì tra cứu lại bảng ký tự mới.
Các giá trị Text to ASCII thông dụng cần nhớ
| Ký tự | Mã thập phân | Mã nhị phân 8-bit |
|---|---|---|
| space | 32 | 00100000 |
| 0 | 48 | 00110000 |
| 9 | 57 | 00111001 |
| A | 65 | 01000001 |
| Z | 90 | 01011010 |
| a | 97 | 01100001 |
| z | 122 | 01111010 |
Những giới hạn xử lý của Text to ASCII
- Không biểu diễn được các chữ cái có dấu thanh như é, ñ, ü vì chúng nằm ngoài phạm vi 128 mã nguyên bản.
- Không thể hiển thị các bảng chữ cái phi Latinh như chữ Kirin, tiếng Ả Rập, tiếng Trung hoặc tiếng Nhật dưới bất kỳ dạng nào.
- Không hỗ trợ biểu tượng emoji vì nhóm ký tự hình ảnh này đòi hỏi hàng nghìn mã số mà tiêu chuẩn ban đầu chưa từng thiết kế.
- Giữ nguyên sự tương đồng hoàn toàn với 128 ký tự đầu tiên của UTF-8, nơi mọi giới hạn của mã cơ bản bắt đầu bộc lộ đối với văn bản quốc tế.
Câu hỏi thường gặp về Text to ASCII
Điểm khác biệt giữa mã ASCII và chuẩn UTF-8 là gì?
Chuẩn UTF-8 được thiết kế sao cho 128 mã đầu tiên khớp hoàn toàn với ASCII, giúp văn bản tiếng Anh thuần túy hiển thị đồng nhất trên cả hai hệ thống. Chuẩn UTF-8 sau đó mở rộng vượt qua mốc 127 bằng các chuỗi nhiều byte để chứa ký tự toàn cầu.
Tại sao tiêu chuẩn ASCII chỉ giới hạn ở 128 ký tự?
Bảng mã được xây dựng trên cơ sở bảy bit, phù hợp với phần cứng viễn thông đầu thập niên 1960 khi băng thông truyền tín hiệu chỉ đủ cho bảy bit dữ liệu cộng thêm một bit chẵn lẻ.
Điều gì xảy ra khi chuyển ký tự có dấu hoặc emoji sang ASCII?
Do không có mã số hợp lệ trong bảng, hệ thống sẽ trả về lỗi, ký tự thay thế hoặc bỏ qua ký tự đó tùy thuộc vào logic xử lý của bộ chuyển đổi.
Các tín hiệu điều khiển có nằm trong phạm vi của ASCII không?
Có, toàn bộ 32 mã đầu tiên cùng với mã 127 được dành riêng cho các tín hiệu điều khiển thay vì ký tự in được, phục vụ cho việc ngắt dòng, khoảng lùi tab và chuông báo viễn thông.
Tiêu chuẩn ASCII còn được ứng dụng trong thực tế không?
Hệ thống này vẫn là nền tảng cốt lõi cho hầu hết các chuẩn mã hóa văn bản hiện đại bao gồm UTF-8, giúp lập trình viên hiểu rõ phương thức máy tính lưu trữ và truyền tải dữ liệu dạng chuỗi.