So sánh mã ASCII và Unicode

So sánh mã ASCII và Unicode giúp lập trình viên học c++ giỏi hơn.

13

1. ASCII là gì?

ASCII là viết tắt của American Standard Code for Information Interchange.

ASCII là một hệ thống dùng các con số để đại diện cho các ký tự.

Ký tự     Mã ASCII

'A'       65
'B'       66
'C'       67
'a'       97
'b'       98
'0'       48
'1'       49

Ví dụ trong C++

cout << int('A');

Kết quả:

65

Ngược lại:

cout << char(65);

Kết quả:

A

2. ASCII có bao nhiêu ký tự?

ASCII cơ bản sử dụng các mã từ 0 đến 127.

Tổng cộng có 128 ký tự.

Một số nhóm ký tự trong ASCII

Ký tự điều khiển

Mã từ 0 đến 31. Đây là những ký tự đặc biệt, nhiều ký tự không hiển thị trực tiếp trên màn hình.

Ký tự đặc biệt
32  → Space
33  → !
34  → "
35  → #
Chữ số
48 → 0
49 → 1
50 → 2
51 → 3
...
57 → 9

Lưu ý:

'0' = 48

'0' là ký tự số 0, không phải số 0.

Chữ cái in hoa
65 → A
66 → B
67 → C
...
90 → Z
Chữ cái thường
97  → a
98  → b
99  → c
...
122 → z

3. Unicode là gì?

Unicode là một hệ thống mã hóa ký tự được tạo ra để hỗ trợ rất nhiều ngôn ngữ và ký hiệu trên thế giới.

Tiếng Anh:    A B C
Tiếng Việt:   Đ Ă Â Ê Ô Ơ Ư
Tiếng Trung:  你 好
Tiếng Nhật:   あ い
Tiếng Hàn:    한 글
Biểu tượng:   😀 ❤️ 🚀

Ví dụ mã Unicode

Ký tự     Unicode

A         U+0041
Đ         U+0110
你         U+4F60
😀         U+1F600

4. So sánh ASCII và Unicode

Đặc điểm ASCII Unicode
Mục đích Mã hóa ký tự cơ bản Mã hóa ký tự của nhiều ngôn ngữ
Số lượng mã 128 mã cơ bản Rất nhiều mã
Tiếng Anh
Tiếng Việt Không đầy đủ
Tiếng Trung Không
Tiếng Nhật Không
Tiếng Hàn Không
Emoji Không

5. ASCII có nằm trong Unicode không?

Có. ASCII là một phần nhỏ của Unicode.

ASCII:

'A' = 65

Trong Unicode:

'A' = U+0041

U+0041 cũng chính là số 65.

Vì vậy, các ký tự ASCII cơ bản vẫn giữ nguyên mã khi được biểu diễn trong Unicode.

ASCII ⊂ Unicode

Điều này có nghĩa là ASCII là một phần của Unicode.


6. Ví dụ trong C++

#include <iostream>
using namespace std;

int main() {
    char c = 'A';

    cout << int(c) << endl;
    cout << char(65);

    return 0;
}

Kết quả:

65
A

Có thể hiểu:

'A' → 65
65  → 'A'

7. Tại sao cần Unicode?

Nếu chỉ sử dụng ASCII, máy tính sẽ gặp khó khăn khi hiển thị nhiều ký tự trên thế giới:

Đ
Ă
Â
Ê
Ô
Ơ
Ư

Hoặc:

你
好
あ
한
😀

Unicode giúp mỗi ký tự có một mã số riêng.

Đ → U+0110
ă → U+0103
ô → U+00F4
你 → U+4F60
😀 → U+1F600

8. Unicode và UTF-8 có giống nhau không?

Unicode và UTF-8 không hoàn toàn giống nhau.

Unicode

Unicode quy định mỗi ký tự có một mã số.

A  → U+0041
😀 → U+1F600

UTF-8

UTF-8 là một cách lưu trữ các mã Unicode trong máy tính.

Ngoài UTF-8 còn có:

  • UTF-8
  • UTF-16
  • UTF-32

Có thể hiểu đơn giản:

Unicode quyết định ký tự có mã số nào.
UTF-8 quyết định cách lưu mã số đó trong bộ nhớ.

9. Tóm tắt

ASCII

  • Bảng mã nhỏ.
  • Có 128 ký tự cơ bản.
  • Chủ yếu hỗ trợ tiếng Anh.
  • Ví dụ: A = 65.

Unicode

  • Bảng mã rất lớn.
  • Hỗ trợ nhiều ngôn ngữ trên thế giới.
  • Hỗ trợ tiếng Việt, tiếng Trung, tiếng Nhật, tiếng Hàn...
  • Hỗ trợ emoji.
  • Ví dụ: Đ = U+0110, 😀 = U+1F600.

 

So sánh mã ASCII và Unicode giúp lập trình viên học c++ giỏi hơn.