Mã hóa ký tự như ANSI và Unicode là gì và chúng khác nhau như thế nào?
ASCII, UTF-8, ISO-8859 Có thể bạn đã 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á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à 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à ký hiệu đạ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 ý nghĩa nào đó. Mỗi hệ thống ngôn ngữ có một bộ quy tắc và định nghĩa phức tạp chi phối những ý nghĩa đó. Nếu bạn có một từ, nó vô dụng trừ khi bạn biết nó là ngôn ngữ nào và bạn sử dụng nó với những người nói ngôn ngữ đó.
(So sánh các tập lệnh Grantha, Tulu và Malayalam, Hình ảnh từ Wikipedia)
Trong thế giới của máy tính, chúng tôi sử dụng thuật ngữ ký tự. Một ký tự là một loại 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. Tiếng Latin 'A' không giống với tiếng Hy Lạp 'alpha' hoặc tiếng Ả Rập 'alif' vì chúng có ngữ cảnh khác nhau - chúng đến 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. Biểu diễn trực quan của một nhân vật được gọi là một glyphon và các bộ glyph khác nhau được gọi là phông chữ. Các nhóm nhân vật thuộc về một tập hợp của người Viking và một tiết mục của người khác.
Khi bạn nhập một đoạn văn và bạn thay đổi phông chữ, bạn sẽ không thay đổi giá trị ngữ âm của các chữ cái, bạn đang thay đổi giao diện của chúng. Đó chỉ là mỹ phẩm (nhưng không quan trọng!). Một số ngôn ngữ, như Ai Cập và Trung Quốc cổ đại, 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ỉ thay đổi chữ cái, nó còn thay đổi một chữ tượng hình.
Mã hóa ký tự
(Ả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ì sẽ hiển thị? Đó là những gì mã hóa ký tự dành cho. Văn bản trên máy tính của bạn không thực sự là các chữ cái, đó là một chuỗi các giá trị chữ và số được ghép nối. Mã hóa ký tự đóng vai trò là chìa khóa cho các giá trị tương ứng với các ký tự nào, giống như cách chỉnh hình chỉ ra âm thanh nào tương ứng với các chữ cái. Mã Morse là một loại mã hóa ký tự. Nó giải thích cách các nhóm đơ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à dấu dừng đầy đủ. Có nhiều bảng mã ký tự máy tính dịch thành chữ, 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ữ các trang mã của Wikipedia cũng được sử dụng. Chúng chủ yếu là mã hóa ký tự như được sử dụng bởi các công ty cụ thể, thường có sửa đổ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ộ để chỉ các mã hóa ký tự chuẩn và được sửa đổi dành riêng cho cùng các hệ thống. Ban đầu, mã hóa ký tự không quá quan trọng vì các máy tính không giao tiếp với nhau. Khi internet ngày càng nổi tiếng và việc kết nối mạng trở nên phổ biến, nó đã trở nên ngày càng quan trọng trong cuộc sống hàng ngày của chúng ta mà không cần chúng ta nhận ra điều đó.
Nhiều loại khác nhau
(Hình ảnh từ sarah sosiak)
Có rất nhiều mã hóa nhân vật khác nhau ngoài kia, và có rất nhiều lý do cho điều đó. Mã hóa ký tự bạn chọn sử dụng phụ thuộc vào nhu cầu của bạn là gì. Nếu bạn giao tiếp bằng tiếng Nga, sẽ rất hợp lý khi 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 một cái 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 được thể hiện tốt, cũng như các glyphs Hy Lạp và Latin. Nếu bạn là người thích chơi khăm, có thể bạn sẽ được 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 nào, bạn muốn một mã hóa khá phổ biến và dễ truy cập.
Chúng ta hãy xem một số những cái phổ biến hơn.
(Trích bảng ASCII, Hình ảnh từ asciitable.com)
- ASCII - Mã tiêu chuẩn Mỹ để trao đổi thông tin là một trong những mã hóa ký tự cũ. Ban đầu nó được phát minh dựa trên các mã điện báo và được 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 được in lỗi thời. Nó có thể cơ bản như bạn có thể có được về các hệ thống hiện đại, vì nó 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 là số 8859. Mỗi mã hóa cụ thể được chỉ định bởi 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 (Latin / Ả Rập). Đây là siêu ký tự của ASCII, có nghĩa là 128 giá trị đầu tiên trong mã hóa giống như ASCII. Tuy nhiên, nó 8 bit và cho phép 256 ký tự, do đó, nó được xây dựng từ đó và bao gồm một mảng các ký tự rộng hơn nhiều, với mỗi mã hóa cụ thể tập trung vào một bộ tiêu chí khác nhau. 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 bộ sửa đổi được gọi là Latin-9 bao gồm các glyph được cập nhật như biểu tượng Euro.
(Trích đoạn mã tiếng Tây Tạng, Unicode v4, từ unicode.org)
- Unicode - Tiêu chuẩn mã hóa này nhằm mục đích phổ quát. Nó hiện bao gồm 93 tập lệnh được tổ chức trong một số khối, với nhiều hơn nữa trong các tác phẩm. Unicode hoạt động khác với các bộ ký tự khác ở chỗ thay vì mã hóa trực tiếp cho glyph, mỗi giá trị được hướng xa hơn tới điểm mã của Cameron. Đây là các giá trị thập lục phân tương ứng với các ký tự nhưng chính glyphs được cung cấp theo cách tách rời , 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 (dịch thành '@'). Các 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 cơ chế thay thế và nhiều cặp giá trị cho mỗi ký tự. UTF-16 bỏ khả năng tương thích ASCII hoàn hảo để 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 tế, chỉ là một bộ ký tự Unicode được ISO chuẩn hóa. Điều này chủ yếu quan trọng vì đó là tiết mục nhân vật được HTML sử dụng. Một số chức năng nâng cao hơn do Unicode cung cấp cho phép đối chiếu 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 glyphs. Điều này làm cho việc bản địa hóa có phần dễ dàng hơn.
Tôi nên sử dụng mã hóa gì?
Vâng, ASCII hoạt động cho hầu hết những người nói tiếng Anh, nhưng không phải 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 Cyrillic, Ả Rập, 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 câu, ký hiệu toán học hoặc ký tự ngoài lề thích hợp, 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)
Tuy nhiên, có những hạn chế đối với mỗi bộ. ASCII bị giới hạn về dấu chấm câu, vì vậy nó không hoạt động cực kỳ tốt cho các chỉnh sửa chính xác về mặt chính tả. 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, hay chính xác hơn là khả năng tương tác được cho là 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 BẠN, Microsoft!). Hạn chế lớn của UTF-8 là thiếu sự hỗ trợ thích hợp trong việc chỉnh sửa và xuất bản ứng dụng. 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 ký tự được mã hóa UTF-8. Điều này dẫn đến glyphs không mong muốn được hiển thị. Và tất nhiên, việc khai báo một mã hóa và sử dụng các ký tự từ một ký tự khác mà không khai báo / tham chiếu chúng đúng cách trên một trang web khiến các trình duyệt khó hiển thị chúng chính xác và các công cụ tìm kiếm lập chỉ mục một cách thích hợp.
Đối với các tài liệu, bản thảo của bạn, v.v., 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 như trên web, có vẻ như 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. Là người dùng cuối, có lẽ bạn sẽ không phải đối phó với vấn đề này, nhưng bây giờ bạn có thể tiến thêm bước nữa nếu bạn chọn.