Mã hóa ký tự là gì như ANSI và Unicode, và chúng khác nhau như thế nào?

Mục lục:

Mã hóa ký tự là gì như ANSI và Unicode, và chúng khác nhau như thế nào?
Mã hóa ký tự là gì như ANSI và Unicode, và chúng khác nhau như thế nào?

Video: Mã hóa ký tự là gì như ANSI và Unicode, và chúng khác nhau như thế nào?

Video: Mã hóa ký tự là gì như ANSI và Unicode, và chúng khác nhau như thế nào?
Video: BitCoin là gì? - Hiểu rõ Bitcoin trong 5 phút - YouTube 2024, Tháng tư
Anonim
ASCII, UTF-8, ISO-8859… Bạn có thể đã thấy những biệt danh kỳ lạ này trôi nổi xung quanh, nhưng chúng thực sự có ý nghĩa gì? Đọc tiếp khi chúng tôi giải thích mã hóa ký tự là gì và cách các từ viết tắt này liên quan đến văn bản thuần túy mà chúng ta thấy trên màn hình.
ASCII, UTF-8, ISO-8859… Bạn có thể đã thấy những biệt danh kỳ lạ này trôi nổi xung quanh, nhưng chúng thực sự có ý nghĩa gì? Đọc tiếp khi chúng tôi giải thích mã hóa ký tự là gì và cách các từ viết tắt này liên quan đến văn bản thuần túy mà chúng ta thấy trên màn hình.

Khối xây dựng cơ bản

Khi chúng ta nói về ngôn ngữ viết, chúng ta nói về các chữ cái là các khối xây dựng của các từ, sau đó xây dựng các câu, đoạn văn, v.v. Chữ cái là biểu tượng đại diện cho âm thanh. Khi bạn nói về ngôn ngữ, bạn đang nói về các nhóm âm thanh kết hợp với nhau để tạo thành một loại ý nghĩa nào đó. Mỗi hệ thống ngôn ngữ có một bộ quy tắc phức tạp và định nghĩa chi phối những ý nghĩa đó. Nếu bạn có một từ, nó là vô dụng trừ khi bạn biết nó là ngôn ngữ gì và bạn sử dụng nó với những người nói ngôn ngữ đó.

(So sánh các kịch bản của Grantha, Tulu và Malayalam, Hình ảnh từ Wikipedia)
(So sánh các kịch bản của Grantha, Tulu và Malayalam, Hình ảnh từ Wikipedia)

Trong thế giới máy tính, chúng ta sử dụng thuật ngữ “ký tự”. Một nhân vật là một khái niệm trừu tượng, được xác định bởi các tham số cụ thể, nhưng nó là đơn vị cơ bản của ý nghĩa. Chữ ‘A’ ở Latin không giống chữ ‘alpha’ của Hy Lạp hoặc ‘alif’ của Hy Lạp vì chúng có ngữ cảnh khác nhau - chúng có từ các ngôn ngữ khác nhau và có cách phát âm hơi khác nhau - vì vậy chúng ta có thể nói rằng chúng là các ký tự khác nhau. Các đại diện trực quan của một nhân vật được gọi là một "glyph" và bộ khác nhau của glyphs được gọi là phông chữ. Các nhóm ký tự thuộc về “bộ” hoặc “tiết mục”.

Khi bạn nhập một đoạn văn và bạn thay đổi phông chữ, bạn không thay đổi giá trị ngữ âm của các chữ cái, bạn đang thay đổi cách chúng trông như thế nào. Nó chỉ là mỹ phẩm (nhưng không quan trọng!). Một số ngôn ngữ, như Ai Cập cổ đại và Trung Quốc, có chữ tượng hình; chúng đại diện cho toàn bộ ý tưởng thay vì âm thanh và cách phát âm của chúng có thể thay đổi theo thời gian và khoảng cách. Nếu bạn thay thế một nhân vật cho một nhân vật khác, bạn đang thay thế một ý tưởng. Không chỉ là thay đổi chữ cái, nó còn thay đổi một chữ tượng hình.

Mã hóa ký tự

(Hình ảnh từ Wikipedia)
(Hình ảnh từ Wikipedia)

Khi bạn gõ một cái gì đó trên bàn phím, hoặc tải một tập tin, làm thế nào để máy tính biết những gì để hiển thị? Đó là tính năng mã hóa ký tự. Văn bản trên máy tính của bạn không thực sự là chữ cái, đó là một loạt các giá trị chữ và số ghép nối. Mã hóa ký tự hoạt động như một khóa cho các giá trị tương ứng với các ký tự nào, giống như cách thức chính tả quy định âm thanh nào tương ứng với các chữ cái nào. Mã Morse là một loại mã hóa ký tự. Nó giải thích cách nhóm các đơn vị dài và ngắn như tiếng bíp đại diện cho các ký tự. Trong mã Morse, các ký tự chỉ là chữ cái tiếng Anh, số và toàn bộ các điểm dừng. Có rất nhiều bảng mã ký tự máy tính dịch thành chữ cái, số, dấu trọng âm, dấu chấm câu, ký hiệu quốc tế, v.v.

Thông thường về chủ đề này, thuật ngữ “trang mã” cũng được sử dụng. Về bản chất, chúng được mã hóa bởi các công ty cụ thể, thường có những thay đổi nhỏ. Ví dụ, trang mã Windows 1252 (trước đây gọi là ANSI 1252) là một dạng sửa đổi của ISO-8859-1. Chúng chủ yếu được sử dụng như một hệ thống nội bộ để tham chiếu đến các mã hóa ký tự tiêu chuẩn và được sửa đổi dành riêng cho cùng một hệ thống. Ban đầu, mã hóa ký tự không quá quan trọng vì máy tính không giao tiếp với nhau. Với internet tăng lên nổi bật và mạng là một sự xuất hiện phổ biến, nó đã trở thành một ngày càng quan trọng của cuộc sống hàng ngày của chúng tôi mà không cần chúng tôi thậm chí nhận ra nó.

Nhiều loại khác nhau

(Hình ảnh từ sarah sosiak)
(Hình ảnh từ sarah sosiak)

Có rất nhiều mã hóa ký tự khác nhau, và có rất nhiều lý do cho điều đó. Mã hóa ký tự bạn chọn để sử dụng tùy thuộc vào nhu cầu của bạn. Nếu bạn giao tiếp bằng tiếng Nga, bạn nên sử dụng mã hóa ký tự hỗ trợ tốt Cyrillic. Nếu bạn giao tiếp bằng tiếng Hàn, thì bạn sẽ muốn thứ gì đó đại diện cho Hangul và Hanja. Nếu bạn là một nhà toán học, thì bạn muốn một cái gì đó có tất cả các biểu tượng khoa học và toán học đại diện tốt, cũng như các glyphs Hy Lạp và Latin. Nếu bạn là người chơi khăm, có thể bạn sẽ được hưởng lợi từ văn bản lộn ngược. Và, nếu bạn muốn tất cả các loại tài liệu đó được xem bởi bất kỳ người cụ thể nào, bạn muốn mã hóa khá phổ biến và dễ truy cập.

Chúng ta hãy xem xét một số thông tin phổ biến hơn.

(Trích dẫn bảng ASCII, Hình ảnh từ asciitable.com)
(Trích dẫn bảng ASCII, Hình ảnh từ asciitable.com)
  • ASCII - Mã tiêu chuẩn của Mỹ cho trao đổi thông tin là một trong những mã hóa ký tự cũ hơn. Ban đầu nó được phát minh dựa trên các mã điện báo và phát triển theo thời gian để bao gồm nhiều biểu tượng hơn và một số ký tự điều khiển không in cũ. Nó có thể là cơ bản như bạn có thể nhận được về hệ thống hiện đại, vì nó được giới hạn trong bảng chữ cái Latinh mà không có các ký tự có dấu. Mã hóa 7 bit của nó chỉ cho phép 128 ký tự, đó là lý do tại sao có một số biến thể không chính thức được sử dụng trên toàn thế giới.
  • ISO-8859 - Nhóm mã hóa ký tự được sử dụng rộng rãi nhất của Tổ chức tiêu chuẩn hóa quốc tế là số 8859. Mỗi mã hóa cụ thể được chỉ định bằng một số, thường được đặt trước bởi một biệt danh mô tả, ví dụ: ISO-8859-3 (Latin-3), ISO-8859-6 (tiếng Latinh / tiếng Ả Rập).Đó là một siêu của ASCII, có nghĩa là 128 giá trị đầu tiên trong mã hóa giống như ASCII. Tuy nhiên, đó là 8 bit và cho phép 256 ký tự, do đó, nó được xây dựng từ đó và bao gồm nhiều ký tự rộng hơn, với mỗi mã hóa cụ thể tập trung vào một bộ tiêu chí khác. Latin-1 bao gồm một loạt các chữ cái và ký hiệu có dấu, nhưng sau đó được thay thế bằng một tập hợp được sửa đổi có tên Latin-9, bao gồm các ký tự được cập nhật như ký hiệu Euro.
(Trích đoạn kịch bản tiếng Tây Tạng, Unicode v4, từ unicode.org)
(Trích đoạn kịch bản tiếng Tây Tạng, Unicode v4, từ unicode.org)
  • Unicode - Tiêu chuẩn mã hóa này nhắm đến tính phổ quát. Nó hiện bao gồm 93 kịch bản được tổ chức trong một số khối, với nhiều hơn nữa trong các công trình. Unicode hoạt động khác với các bộ ký tự khác thay vì mã hóa trực tiếp cho một glyph, mỗi giá trị được chuyển tiếp tới một “điểm mã”. Đây là các giá trị thập lục phân tương ứng với các ký tự, nhưng bản thân glyphs được cung cấp một cách riêng biệt bởi chương trình, chẳng hạn như trình duyệt web của bạn. Các điểm mã này thường được mô tả như sau: U + 0040 (được dịch thành ‘@’). Mã hóa cụ thể theo tiêu chuẩn Unicode là UTF-8 và UTF-16. UTF-8 cố gắng cho phép tương thích tối đa với ASCII. Đó là 8 bit, nhưng cho phép tất cả các ký tự thông qua một cơ chế thay thế và nhiều cặp giá trị cho mỗi ký tự. UTF-16 bỏ qua khả năng tương thích ASCII hoàn hảo cho khả năng tương thích 16 bit hoàn chỉnh hơn với tiêu chuẩn.
  • ISO-10646 - Đây không phải là mã hóa thực, chỉ là một bộ ký tự Unicode được chuẩn hóa bởi ISO. Điều này chủ yếu quan trọng vì đó là tiết mục nhân vật được sử dụng bởi HTML. Một số chức năng nâng cao hơn được cung cấp bởi Unicode cho phép đối chiếu collation và từ phải sang trái cùng với kịch bản từ trái sang phải bị thiếu. Tuy nhiên, nó hoạt động rất tốt để sử dụng trên internet vì nó cho phép sử dụng nhiều loại tập lệnh và cho phép trình duyệt diễn giải các hình tượng. Điều này giúp việc bản địa hóa dễ dàng hơn một chút.

Tôi nên sử dụng mã hóa nào?

Vâng, ASCII làm việc cho hầu hết người nói tiếng Anh, nhưng không cho nhiều người khác. Thông thường bạn sẽ thấy ISO-8859-1, hoạt động với hầu hết các ngôn ngữ Tây Âu. Các phiên bản khác của ISO-8859 hoạt động cho các tập lệnh Cyrillic, tiếng Ả Rập, tiếng Hy Lạp hoặc các tập lệnh cụ thể khác. Tuy nhiên, nếu bạn muốn hiển thị nhiều tập lệnh trong cùng một tài liệu hoặc trên cùng một trang web, UTF-8 cho phép khả năng tương thích tốt hơn nhiều. Nó cũng hoạt động thực sự tốt cho những người sử dụng dấu chấm câu thích hợp, ký hiệu toán học, hoặc các ký tự tắt tiếng, chẳng hạn như hình vuông và hộp kiểm.

(Nhiều ngôn ngữ trong một tài liệu, Ảnh chụp màn hình của gujaratsamachar.com)
(Nhiều ngôn ngữ trong một tài liệu, Ảnh chụp màn hình của gujaratsamachar.com)

Tuy nhiên, có những hạn chế đối với mỗi bộ. ASCII bị giới hạn trong các dấu chấm câu, vì vậy nó không hoạt động tốt cho các chỉnh sửa chính xác về mặt typography. Bao giờ gõ sao chép / dán từ Word chỉ để có một số kết hợp kỳ lạ của glyphs? Đó là nhược điểm của ISO-8859, hoặc chính xác hơn, khả năng tương tác được giả định của nó với các trang mã dành riêng cho hệ điều hành (chúng tôi đang xem YOU, Microsoft!). Hạn chế lớn của UTF-8 là thiếu sự hỗ trợ thích hợp trong các ứng dụng chỉnh sửa và xuất bản. Một vấn đề khác là các trình duyệt thường không diễn giải và chỉ hiển thị dấu thứ tự byte của một ký tự mã hóa UTF-8. Điều này dẫn đến glyphs không mong muốn được hiển thị. Và dĩ nhiên, việc khai báo một mã hóa và sử dụng các ký tự từ một mã khác mà không khai báo / tham chiếu chúng một cách chính xác trên trang web sẽ khiến cho các trình duyệt hiển thị chúng một cách chính xác và cho các công cụ tìm kiếm lập chỉ mục chúng một cách thích hợp.

Đối với các tài liệu, bản thảo, vv của riêng bạn, bạn có thể sử dụng bất cứ thứ gì bạn cần để hoàn thành công việc. Tuy nhiên, theo mặc dù, hầu hết mọi người đều đồng ý sử dụng phiên bản UTF-8 không sử dụng dấu thứ tự byte, nhưng điều đó không hoàn toàn nhất trí. Như bạn có thể thấy, mỗi mã hóa ký tự có cách sử dụng, bối cảnh và điểm mạnh và điểm yếu riêng của nó. Là người dùng cuối, có thể bạn sẽ không phải giải quyết vấn đề này, nhưng bây giờ bạn có thể tiến thêm một bước nữa nếu bạn chọn.

Đề xuất: