Bảng ASCII sử dụng các số để biểu thị các chữ số, chữ cái và các ký hiệu phổ biến từ bảng chữ cái tiếng Anh. ASCII là viết tắt của Mã tiêu chuẩn Mỹ để trao đổi thông tin.
Từ này lần đầu tiên được ANSI (Viện Tiêu chuẩn Quốc gia Hoa Kỳ) sử dụng vào năm 1973 để đáp ứng nhu cầu trong lĩnh vực này. Vậy bảng ASCII trông như thế nào và bạn có thể sử dụng nó như thế nào?
Bảng ASCII là gì và nó chứa gì?
ASCII là một hệ thống mã hóa ký tự hỗ trợ giao tiếp máy tính cơ bản. Nó cung cấp một tiêu chuẩn để biểu diễn văn bản, cho phép máy tính nhận dạng và giải thích các giá trị ASCII một cách phổ biến.
Mỗi chữ cái, số và ký hiệu mà ASCII có thể biểu thị có một giá trị duy nhất. Ví dụ: nếu bạn kiểm tra bảng ASCII bên dưới, bạn sẽ thấy rằng các giá trị ASCII chữ hoa bắt đầu từ 65, chữ hoa A. Tương tự như vậy, các giá trị ASCII chữ thường bắt đầu từ 97, chữ a viết thường.
Các giá trị này đóng vai trò là biểu diễn số của các ký tự, cho phép chuyển đổi dễ dàng giữa số và văn bản.
Tính cách |
ASCII |
Tính cách |
ASCII |
Tính cách |
ASCII |
Tính cách |
ASCII |
Tính cách |
ASCII |
Tính cách |
ASCII |
Tính cách |
ASCII |
Tính cách |
ASCII |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 |
NUL |
16 |
DEL |
32 |
SP |
48 |
0 |
64 |
@ |
80 |
P |
96 |
` |
112 |
P |
1 |
SOH |
17 |
DC1 |
33 |
! |
49 |
1 |
65 |
MỘT |
81 |
Hỏi |
97 |
Một |
113 |
q |
2 |
STX |
18 |
DC2 |
34 |
“ |
50 |
2 |
66 |
b |
82 |
r |
98 |
b |
114 |
r |
3 |
ETX |
19 |
DC3 |
35 |
# |
51 |
3 |
67 |
C |
83 |
S |
99 |
c |
115 |
S |
4 |
EOT |
20 |
DC4 |
36 |
$ |
52 |
4 |
68 |
Đ. |
84 |
t |
100 |
đ |
116 |
t |
5 |
ENQ |
21 |
NAK |
37 |
% |
53 |
5 |
69 |
e |
85 |
bạn |
101 |
e |
117 |
bạn |
6 |
xác nhận |
22 |
đồng bộ hóa |
38 |
& |
54 |
6 |
70 |
F |
86 |
V |
102 |
f |
118 |
v |
7 |
BÍ MẬT |
23 |
ETB |
39 |
‘ |
55 |
7 |
71 |
g |
87 |
W |
103 |
g |
119 |
w |
số 8 |
BS |
24 |
CÓ THỂ |
40 |
( |
56 |
số 8 |
72 |
h |
88 |
X |
104 |
h |
120 |
x |
9 |
HT |
25 |
EM |
41 |
) |
57 |
9 |
73 |
TÔI |
89 |
Y |
105 |
Tôi |
121 |
y |
10 |
LF |
26 |
SUB |
42 |
* |
58 |
: |
74 |
J |
90 |
z |
106 |
j |
122 |
z |
11 |
VT |
27 |
THOÁT |
43 |
+ |
59 |
; |
75 |
K |
91 |
[ |
107 |
k |
123 |
{ |
12 |
FF |
28 |
FS |
44 |
, |
60 |
< |
76 |
L |
92 |
108 |
l |
124 |
| |
|
13 |
CR |
29 |
GS |
45 |
– |
61 |
= |
77 |
M |
93 |
] |
109 |
tôi |
125 |
} |
14 |
VÌ THẾ |
30 |
RS |
46 |
. |
62 |
> |
78 |
N |
94 |
^ |
110 |
N |
126 |
~ |
15 |
SI |
31 |
CHÚNG TA |
47 |
/ |
63 |
? |
79 |
Ô |
95 |
_ |
111 |
o |
127 |
DEL |
Cách tạo bảng ASCII của riêng bạn với Bash
Có rất nhiều giá trị trong bảng ASCII có thể khó ghi nhớ hoặc ghi chú. Để tham khảo, bạn có thể xem tất cả các giá trị ASCII với một chút mã hóa bằng ngôn ngữ lập trình mà bạn chọn, bao gồm cả tập lệnh shell.
Trong bảng ASCII ở trên, giá trị 65 tương ứng với chữ A và giá trị 90 tương ứng với chữ Z. Thay vì tính toán tất cả các giá trị ở giữa theo cách thủ công, bạn có thể lặp lại các giá trị đó và in các ký tự tương ứng của chúng. Giống như hầu hết các ngôn ngữ khác, Bash shell script cho phép bạn sử dụng một vì vòng lặp để lặp lại một hoặc nhiều hướng dẫn một số lần nhất định.
Sử dụng thông tin này, hãy thử viết chương trình Bash in tất cả các giá trị bắt đầu từ 33 đến 126:
#!/bin/bashecho "ASCII Table"
echo ""
for ((i=33; i<=126; i++))
do
char=$(printf "\x$(printf '%02x' $i)")
printf "%-10d%-10s" $i "$char"
if (((i+1) % 4 == 0))
then
printf "n"
fi
done
Tập lệnh Bash này gán tất cả các giá trị từ 33 đến 126 cho một than biến và in ra màn hình. Lưu tập lệnh Bash này trong một tệp có tên myASCII.sh và chạy nó bằng lệnh sau và kiểm tra kết quả.
bash myASCII.sh
Bạn sẽ thấy một bảng hữu ích hiển thị các ký tự ASCII bên cạnh các giá trị thập phân của chúng:
Cách lọc bảng ASCII
Bạn có thể làm được nhiều việc hơn với tập lệnh Bash hơn là chỉ xem các giá trị ASCII. Bạn có thể kiểm tra giá trị ASCII của các ký tự riêng lẻ và trong ví dụ sau, sử dụng các giá trị này để lọc văn bản.
Ví dụ: hãy thử xóa chữ E trong từ khóa MAKEUSEOF bằng cách sử dụng Bash với bộ lọc ASCII. Bạn có thể sử dụng bảng tra cứu để xác nhận giá trị ASCII của “E”: 69.
#!/bin/bash
original_text="MAKEUSEOF"
filtered_text=""
original_text_ascii=""
filtered_text_ascii=""for ((i=0; i<${#original_text}; i++))
do
char="${original_text:i:1}"
char_ascii=$(printf "%d" "'$char'")
if [[ "$(printf "%d" "'$char")" != "69" ]]
then
filtered_text+="$char"
filtered_text_ascii+=" $char_ascii"
fi
original_text_ascii+=" $char_ascii"
done
echo "Original text: $original_text (ASCII: $original_text_ascii)"
echo "ASCII equivalent of the letter E: $(printf "%d" "'E'")"
echo "Filtered text: $filtered_text (ASCII: $filtered_text_ascii)"
Trong tập lệnh này, biến đầu vào là từ MAKEUSEOF. Kịch bản sử dụng một biến, lọc_văn bản, để tạo đầu ra mong muốn chứa mọi thứ trừ chữ “E”. Các vì vòng lặp lặp qua từng ký tự trong văn bản đầu vào.
Để xem kết quả, hãy sao chép mã này vào tệp có tên myFilter.sh và chạy bash myFilter.sh.
Chuyển đổi chữ hoa thành chữ thường trong Bash bằng bảng ASCII
Bạn cũng có thể chuyển chữ hoa thành chữ thường với Bash bằng cách sử dụng bảng ASCII. Khi bạn kiểm tra bảng ASCII 7-bit, bạn sẽ thấy rằng sự khác biệt giữa giá trị chữ hoa và chữ thường của cùng một chữ cái luôn là 32. Sử dụng điều này, logic của một chương trình có thể chuyển đổi một từ chữ hoa thành chữ thường rất đơn giản.
Ví dụ, chữ A viết hoa có giá trị là 65, trong khi chữ a nhỏ có giá trị là 97. Tận dụng lợi thế này, bạn có thể viết một đoạn mã như sau:
#!/bin/bashread -p "Enter a text: " input
converted_text=""
for ((i=0; i<${#input}; i++))
do
char="${input:i:1}"
char_ascii=$(printf "%d" "'$char'")
if [[ $char_ascii -eq 32 ]]
then
echo "Invalid character: space"
elif [[ $char_ascii -ge 65 && $char_ascii -le 90 ]]
then
char_ascii=$((char_ascii + 32))
converted_text+=$(printf "\$(printf '%03o' "$char_ascii")")
elif [[ $char_ascii -ge 97 && $char_ascii -le 127 ]]
then
converted_text+="$char"
else
echo "Invalid character: $char"
fi
done
echo "Converted text: $converted_text"
Chương trình này thêm 32 vào giá trị ASCII của mỗi chữ hoa mà nó đọc để đến chữ thường tương ứng. Để tự mình thử, hãy sao chép mã này vào một tệp có tên toLowercase.sh và chạy nó với bash toLowercase.sh yêu cầu.
Bảng ASCII có phù hợp với tôi không?
Bảng ASCII là một công cụ có giá trị cho bất kỳ ai làm việc với dữ liệu văn bản hoặc ngôn ngữ lập trình. Nó cung cấp một biểu diễn tiêu chuẩn của các ký tự, số và ký hiệu mà các máy tính đều hiểu được. Cho dù bạn là lập trình viên, nhà phân tích dữ liệu hay đơn giản là người xử lý thông tin văn bản, bảng ASCII đều có nhiều cách sử dụng.
Điều này mở ra khả năng cho các tác vụ như xác thực dữ liệu, thao tác văn bản và các hoạt động mã hóa/giải mã. Bằng cách tham khảo bảng ASCII, bạn có thể nhanh chóng xác định giá trị ASCII của một ký tự hoặc chuyển đổi các giá trị số trở lại dạng biểu diễn văn bản của chúng. Nó phục vụ như một nền tảng cho giao tiếp và khả năng tương tác trong các lĩnh vực khác nhau, làm cho nó trở thành một tài liệu tham khảo cần thiết cho lập trình liên quan đến văn bản.