Sự khác biệt giữa văn bản ASCII và Unicode là gì?

Sự khác biệt giữa văn bản ASCII và Unicode là gì?

ASCII và Unicode đều là tiêu chuẩn đề cập đến sự biểu diễn kỹ thuật số của văn bản, cụ thể là các ký tự tạo nên văn bản. Tuy nhiên, hai tiêu chuẩn có sự khác biệt đáng kể, với nhiều thuộc tính phản ánh thứ tự tạo tương ứng của chúng.





Châu Mỹ so với vũ trụ

Không có gì ngạc nhiên khi Bộ luật trao đổi thông tin tiêu chuẩn của Mỹ (ASCII) phục vụ cho khán giả Mỹ, viết bằng bảng chữ cái tiếng Anh. Nó xử lý các chữ cái không có dấu, chẳng hạn như A-Z và a-z, cộng với một số lượng nhỏ các ký hiệu dấu câu và ký tự điều khiển.





Đặc biệt, không có cách nào thể hiện các từ cho vay được áp dụng từ các ngôn ngữ khác, chẳng hạn như cà phê trong ASCII, mà không làm phức tạp chúng bằng cách thay thế các ký tự có dấu (ví dụ: quán cà phê ). Các tiện ích mở rộng ASCII được bản địa hóa đã được phát triển để đáp ứng nhu cầu của nhiều ngôn ngữ khác nhau, nhưng những nỗ lực này đã khiến khả năng tương tác trở nên khó khăn và rõ ràng là đang kéo dài khả năng của ASCII.





Ngược lại, Bộ ký tự được mã hóa phổ quát (Unicode) nằm ở đầu đối diện của thang tham vọng. Unicode cố gắng phục vụ cho càng nhiều hệ thống chữ viết trên thế giới càng tốt, ở mức độ bao gồm các ngôn ngữ cổ và bộ biểu tượng biểu cảm, biểu tượng cảm xúc yêu thích của mọi người.

Bộ ký tự hoặc mã hóa ký tự?

Nói một cách dễ hiểu, tập ký tự là một tập hợp các ký tự (ví dụ: A-Z) trong khi mã hóa ký tự là ánh xạ giữa một tập ký tự và một giá trị có thể được biểu diễn bằng kỹ thuật số (ví dụ: A = 1, B = 2).



Tiêu chuẩn ASCII thực sự là cả hai: nó xác định tập hợp các ký tự mà nó đại diện và một phương pháp ánh xạ mỗi ký tự thành một giá trị số.

Ngược lại, từ Unicode được sử dụng trong một số ngữ cảnh khác nhau để có nghĩa là những thứ khác nhau. Bạn có thể coi nó như một thuật ngữ bao hàm tất cả, như ASCII, để chỉ một bộ ký tự và một số bảng mã. Tuy nhiên, vì có một số bảng mã, thuật ngữ Unicode thường được sử dụng để chỉ tập hợp tổng thể các ký tự, hơn là cách chúng được ánh xạ.





Kích thước

Do phạm vi của nó, Unicode đại diện cho nhiều ký tự hơn ASCII. ASCII tiêu chuẩn sử dụng phạm vi 7 bit để mã hóa 128 nhân vật . Mặt khác, Unicode quá lớn nên chúng ta cần sử dụng các thuật ngữ khác nhau chỉ để nói về nó!

Unicode phục vụ cho 1.111.998 địa chỉ điểm mã. Một điểm mã gần giống với một không gian dành riêng cho một ký tự, nhưng tình huống phức tạp hơn rất nhiều so với khi bạn bắt đầu đi sâu vào chi tiết!





Một so sánh hữu ích hơn là có bao nhiêu tập lệnh (hoặc hệ thống viết) hiện đang được hỗ trợ. Tất nhiên, ASCII chỉ xử lý bảng chữ cái tiếng Anh, về cơ bản là hệ thống chữ viết La tinh hoặc La Mã. Phiên bản Unicode được sản xuất vào năm 2020 còn đi xa hơn rất nhiều: nó bao gồm hỗ trợ cho tổng số 154 tập lệnh.

Kho

Phạm vi 7 bit của ASCII có nghĩa là mỗi ký tự được lưu trữ trong một byte 8 bit duy nhất; bit dự phòng không được sử dụng trong ASCII tiêu chuẩn. Điều này làm cho việc tính toán kích thước trở nên tầm thường: độ dài của văn bản, tính bằng ký tự, là kích thước của tệp tính bằng byte.

Bạn có thể xác nhận điều này bằng chuỗi lệnh bash sau đây. Đầu tiên, chúng tôi tạo một tệp chứa 12 chữ cái văn bản:

cách thay đổi tài khoản google mặc định của tôi
$ echo -n 'Hello, world' > foo

Để kiểm tra xem văn bản có ở bảng mã ASCII hay không, chúng ta có thể sử dụng tập tin chỉ huy:

$ file foo
foo: ASCII text, with no line terminators

Cuối cùng, để có được số byte chính xác mà tệp chiếm, chúng tôi sử dụng tiểu bang chỉ huy:

$ stat -f%z foo
12

Vì tiêu chuẩn Unicode xử lý nhiều ký tự hơn, nên tệp Unicode đương nhiên sẽ chiếm nhiều dung lượng lưu trữ hơn. Chính xác bao nhiêu phụ thuộc vào bảng mã.

Việc lặp lại cùng một nhóm lệnh trước đó, sử dụng một ký tự không thể được biểu diễn trong ASCII, sẽ cho kết quả sau:

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

Ký tự đơn đó chiếm 3 byte trong một tệp Unicode. Lưu ý rằng bash đã tự động tạo tệp UTF-8 vì tệp ASCII không thể lưu trữ ký tự đã chọn (€). UTF-8 cho đến nay là bảng mã ký tự phổ biến nhất cho Unicode; UTF-16 và UTF-32 là hai bảng mã thay thế, nhưng chúng được sử dụng ít hơn nhiều.

UTF-8 là một mã hóa có độ rộng thay đổi, có nghĩa là nó sử dụng các lượng lưu trữ khác nhau cho các điểm mã khác nhau. Mỗi điểm mã sẽ chiếm từ một đến bốn byte, với mục đích là các ký tự phổ biến hơn yêu cầu ít dung lượng hơn, cung cấp một kiểu nén tích hợp sẵn. Điểm bất lợi là việc xác định yêu cầu về độ dài hoặc kích thước của một đoạn văn bản nhất định trở nên phức tạp hơn nhiều.

ASCII là Unicode, nhưng Unicode không phải là ASCII

Để tương thích ngược, 128 điểm mã Unicode đầu tiên đại diện cho các ký tự ASCII tương đương. Vì UTF-8 mã hóa mỗi ký tự này bằng một byte đơn, bất kỳ văn bản ASCII nào cũng là văn bản UTF-8. Unicode là một tập hợp siêu của ASCII.

Tuy nhiên, như được hiển thị ở trên, nhiều tệp Unicode không thể được sử dụng trong ngữ cảnh ASCII. Bất kỳ ký tự nào nằm ngoài giới hạn sẽ được hiển thị theo cách không mong muốn, thường là các ký tự được thay thế hoàn toàn khác với những ký tự đã định.

Cách sử dụng hiện đại

Đối với hầu hết các mục đích, ASCII phần lớn được coi là một tiêu chuẩn kế thừa. Ngay cả trong các tình huống chỉ hỗ trợ hệ chữ Latinh — ví dụ, trong đó hỗ trợ đầy đủ cho sự phức tạp của Unicode là không cần thiết — việc sử dụng UTF-8 thường thuận tiện hơn và tận dụng khả năng tương thích ASCII của nó.

cách sao lưu dấu trang google chrome

Đặc biệt, các trang web phải được lưu và truyền bằng UTF-8, là mặc định cho HTML5. Điều này trái ngược với web trước đó, được xử lý bằng ASCII theo mặc định trước đó đã được thay thế bằng Latin 1.

Một tiêu chuẩn đang thay đổi

Lần sửa đổi cuối cùng của ASCII diễn ra vào năm 1986.

Ngược lại, Unicode tiếp tục được cập nhật hàng năm. Các tập lệnh, ký tự mới và đặc biệt là các biểu tượng cảm xúc mới thường xuyên được thêm vào. Chỉ với một phần nhỏ trong số này được phân bổ, bộ nhân vật đầy đủ có khả năng phát triển và phát triển trong tương lai gần.

Có liên quan: Giải thích 100 biểu tượng cảm xúc phổ biến nhất

ASCII so với Unicode

ASCII phục vụ mục đích của nó trong nhiều thập kỷ, nhưng Unicode hiện đã thay thế nó một cách hiệu quả cho tất cả các mục đích thực tế khác ngoài các hệ thống kế thừa. Unicode lớn hơn và do đó, biểu cảm hơn. Nó đại diện cho một nỗ lực hợp tác trên toàn thế giới và mang lại tính linh hoạt cao hơn nhiều, mặc dù phải trả giá bằng một số phức tạp.

Đăng lại Đăng lại tiếng riu ríu E-mail Văn bản ASCII là gì và nó được sử dụng như thế nào?

Văn bản ASCII có vẻ khó hiểu, nhưng nó có nhiều công dụng trên internet.

Đọc tiếp
Chủ đề liên quan
  • Giải thích về công nghệ
  • Biểu tượng cảm xúc
  • Biệt ngữ
  • Văn hóa web
  • Unicode
Giới thiệu về tác giả Bobby Jack(58 bài báo đã xuất bản)

Bobby là một người đam mê công nghệ, người đã làm việc như một nhà phát triển phần mềm trong gần hai thập kỷ. Anh ấy đam mê chơi game, làm Biên tập viên đánh giá tại Tạp chí Switch Player và đắm mình trong tất cả các khía cạnh của xuất bản trực tuyến và phát triển web.

Xem thêm từ Bobby Jack

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký