Bên ngoài tiêu chuẩn Unicode, một ký tự là một đơn vị văn bản riêng gồm một hoặc nhiều biểu đồ . Những gì tiêu chuẩn Unicode định nghĩa là "ký tự" thực sự là sự pha trộn giữa đồ thị và ký tự. Unicode cung cấp các quy tắc cho việc giải thích các biểu đồ xen kẽ như các ký tự riêng lẻ.
Một Unicode điểm mã là số duy nhất được gán cho mỗi ký tự Unicode (đó là một trong hai nhân vật hoặc một grapheme).
Thật không may, các quy tắc Unicode cho phép một số biểu đồ xen kẽ được hiểu là các biểu đồ khác đã có điểm mã riêng ( biểu mẫu được sắp xếp sẵn ). Điều này có nghĩa là có nhiều hơn một cách trong Unicode để thể hiện một ký tự. Chuẩn hóa Unicode giải quyết vấn đề này.
Một glyph là đại diện trực quan của một nhân vật. Một phông chữ cung cấp một bộ glyphs cho một bộ ký tự nhất định (không phải ký tự Unicode). Đối với mỗi nhân vật, có vô số glyphs có thể.
Trả lời Mark Amery
Đầu tiên, như tôi đã nói, có vô số glyphs có thể có cho mỗi ký tự nên không, một ký tự không "luôn được đại diện bởi một glyph". Unicode không quan tâm nhiều đến glyphs và những thứ nó định nghĩa trong biểu đồ mã của nó chắc chắn không phải là glyphs. Vấn đề là cả hai đều không phải là nhân vật. Vậy chúng là gì?
Đó là thực thể lớn hơn, grapheme hoặc nhân vật? Người ta gọi những yếu tố đồ họa đó trong văn bản không phải là chữ cái hoặc dấu chấm câu là gì? Một thuật ngữ nhanh chóng nảy ra trong tâm trí là "grapheme". Đó là một từ gợi lên chính xác ý tưởng về "một đơn vị đồ họa trong văn bản". Tôi đưa ra định nghĩa này: Một grapheme là thành phần khác biệt nhỏ nhất trong một văn bản viết .
Người ta có thể đi theo một cách khác và nói rằng đồ thị bao gồm các ký tự, nhưng sau đó chúng sẽ được gọi là "đồ thị Trung Quốc", và tất cả các bit và mảnh đồ thị Trung Quốc được tạo thành sẽ phải được gọi là "ký tự". Tuy nhiên, đó là tất cả ngược. Đồ thị là các bit và mảnh nhỏ riêng biệt. Nhân vật được phát triển hơn. Cụm từ "glyphs có thể ghép lại được", sẽ được nói rõ hơn trong ngữ cảnh Unicode là "các ký tự có thể ghép lại được".
Unicode định nghĩa các ký tự nhưng nó cũng định nghĩa các biểu đồ sẽ được soạn thảo với các biểu đồ hoặc ký tự khác. Những điều quái dị mà bạn sáng tác là một ví dụ tốt về điều này. Nếu họ nắm bắt được, có lẽ họ sẽ nhận được điểm mã của riêng mình trong phiên bản Unicode sau này;)
Có một yếu tố đệ quy cho tất cả điều này. Ở cấp độ cao hơn, biểu đồ trở thành ký tự trở thành biểu đồ, nhưng đó là biểu đồ hoàn toàn đi xuống.
Trả lời TS
Chương 1 của tiêu chuẩn nêu rõ: "Mã hóa ký tự Unicode xử lý các ký tự chữ cái, ký tự tư tưởng và ký hiệu tương đương, có nghĩa là chúng có thể được sử dụng trong bất kỳ hỗn hợp nào và với cơ sở tương đương". Đưa ra tuyên bố này, chúng ta nên chuẩn bị cho một số sự kết hợp của các điều khoản trong tiêu chuẩn. Đôi khi thuật ngữ thích hợp chỉ trở nên rõ ràng khi nhìn lại khi một tiêu chuẩn phát triển.
Nó thường xảy ra trong các định nghĩa chính thức của một ngôn ngữ mà hai điều cơ bản được định nghĩa theo nghĩa của nhau. Ví dụ: trong
XML, một phần tử được định nghĩa là thẻ bắt đầu có thể được theo sau bởi nội dung, theo sau là thẻ kết thúc. Nội dung được xác định lần lượt là một yếu tố, dữ liệu ký tự hoặc một vài thứ khác có thể. Một mẫu các định nghĩa tự tham chiếu cũng được ẩn trong tiêu chuẩn Unicode:
Một đồ thị là một điểm mã hoặc một ký tự.
Một ký tự được tạo thành từ một chuỗi gồm một hoặc nhiều đồ thị.
Khi lần đầu tiên đối mặt với hai định nghĩa này, người đọc có thể phản đối định nghĩa đầu tiên với lý do điểm mã là một ký tự, nhưng điều đó không phải lúc nào cũng đúng. Một chuỗi gồm hai điểm mã đôi khi mã hóa một điểm mã duy nhất theo
chuẩn hóa và điểm mã được mã hóa đó đại diện cho ký tự, như được minh họa trong
hình 2.7 . Chuỗi các điểm mã mã hóa các điểm mã khác. Điều này đang trở nên khó khăn một chút và chúng tôi thậm chí đã không đến được lớp nơi các sơ đồ mã hóa ký tự như UTF-8 được sử dụng để mã hóa các điểm mã thành các chuỗi byte.
Trong một số bối cảnh, ví dụ, một bài viết học thuật về
dấu phụ , và phần riêng lẻ của một nhân vật có thể tự hiển thị trong văn bản. Trong bối cảnh đó, phần ký tự riêng lẻ có thể được coi là một ký tự, do đó, có nghĩa là tiêu chuẩn Unicode vẫn linh hoạt.
Như Mark Avery đã chỉ ra, một nhân vật có thể được sáng tác thành một thứ phức tạp hơn. Đó là, mỗi nhân vật có thể phục vụ như một đồ thị nếu muốn. Kết quả cuối cùng của tất cả các thành phần là một điều mà "người dùng nghĩ về một nhân vật". Dường như không có bất kỳ sự phản kháng thực sự nào, trong tiêu chuẩn hoặc trong cuộc thảo luận này, với ý tưởng rằng ở cấp độ cao nhất có những điều này trong văn bản mà người dùng nghĩ là các ký tự riêng lẻ. Để tránh quá tải thuật ngữ đó, chúng ta có thể sử dụng "grapheme" trong mọi trường hợp chúng ta muốn đề cập đến các phần được sử dụng để soạn một ký tự.
Đôi khi, tiêu chuẩn Unicode ở khắp mọi nơi với thuật ngữ của nó. Ví dụ, Chương 3
định nghĩa UTF-8 là "dạng mã hóa" trong khi bảng chú giải định nghĩa "dạng mã hóa" là một thứ khác và UTF-8 là "Lược đồ mã hóa ký tự". Một ví dụ khác là "Grapheme_Base" và "Grapheme_Extend", được thừa nhận là sai lầm nhưng vẫn tồn tại bởi vì thanh trừng chúng là một chút nhiệm vụ. Vẫn còn nhiều việc phải làm để thắt chặt thuật ngữ được sử dụng theo tiêu chuẩn.
Các Đề xuất bổ sung kết hợp GRAPHEME JOINER nhận nó sai khi nó tuyên bố rằng "Graphemes là trình tự của một hoặc các ký tự mã hóa hơn tương ứng với những gì người dùng nghĩ là nhân vật." Thay vào đó, nó nên đọc, "Một chuỗi gồm một hoặc nhiều biểu đồ tổng hợp những gì người dùng nghĩ về nhân vật." Sau đó, nó có thể sử dụng thuật ngữ "chuỗi grapheme" rõ ràng với thuật ngữ "chuỗi ký tự". Cả hai thuật ngữ đều hữu ích. "Chuỗi grapheme" ngụ ý gọn gàng quá trình xây dựng một nhân vật từ những mảnh nhỏ hơn. "chuỗi ký tự" có nghĩa là tất cả những gì chúng ta thường hiểu là: "Một chuỗi những thứ mà người dùng nghĩ là ký tự."
Đôi khi một lập trình viên thực sự muốn hoạt động ở mức trình tự grapheme, do đó nên có sẵn các cơ chế kiểm tra và thao tác các trình tự đó, nhưng nói chung, khi xử lý văn bản, nó đủ để hoạt động trên "chuỗi ký tự" (những gì người dùng nghĩ về như một nhân vật) và để hệ thống quản lý các chi tiết cấp thấp hơn.
Trong mọi trường hợp được đề cập cho đến nay trong cuộc thảo luận này, sẽ tốt hơn khi sử dụng "grapheme" để chỉ các thành phần không thể tách rời và "ký tự" để chỉ thực thể sáng tác. Cách sử dụng này cũng phản ánh tốt hơn các ý nghĩa lâu đời của cả hai thuật ngữ.