Unicode standardının dışında bir karakter , bir veya daha fazla grafikeminden oluşan tek bir metin birimidir . Unicode standardının "karakter" olarak tanımladığı şey aslında grafik ve karakterlerin bir karışımıdır. Unicode, yan yana dizilmiş grafiklerin tek tek karakterler olarak yorumlanması için kurallar sağlar.
Bir Unicode kod noktası her birine atanan bir numaradır Unicode karakter (karakter veya sesletim ya olan).
Ne yazık ki, Unicode kuralları bazı yan yana grafik grafiklerin zaten kendi kod noktalarına ( önceden oluşturulmuş formlar ) sahip diğer grafikler olarak yorumlanmasına izin verir . Bu, Unicode'da bir karakteri temsil etmenin birden fazla yolu olduğu anlamına gelir. Unicode normalizasyonu bu sorunu giderir.
Glif, bir karakterin görsel temsilidir. Bir yazı tipi, belirli bir karakter kümesi (Unicode karakterler için değil) için bir glif kümesi sağlar. Her karakter için sonsuz sayıda olası glif vardır.
Mark Amery Cevapla
İlk olarak, belirttiğim gibi, her karakter için sonsuz sayıda olası glif vardır, bu nedenle hayır, bir karakter "her zaman tek bir glifle temsil edilmez". Unicode, gliflerle çok fazla ilgilenmez ve kod şemalarında tanımladığı şeyler kesinlikle glif değildir. Sorun, hepsinin de karakter olmaması. Peki ne bunlar?
Daha büyük varlık, grafik veya karakter hangisidir? Metin içindeki harf veya noktalama işareti olmayan grafik öğelerine ne denir? Hızla akla gelen bir terim "grafik" tir. "Bir metindeki grafiksel birim" fikrini kesin olarak ortaya koyan bir kelimedir. Bu tanımı öneririm : Bir grafik, yazılı bir metindeki en küçük belirgin bileşendir .
Biri başka yöne gidebilir ve grafiklerin karakterlerden oluştuğunu söyleyebilir, ancak daha sonra bunlara "Çin grafikleri" ve Çin grafiklerinin oluşturduğu tüm parça ve parçaların yerine "karakterler" denir. Ancak, hepsi geriye dönük. Graphemes belirgin küçük bitler ve parçalar. Karakterler daha gelişmiştir. "Glifler oluşturulabilir" ifadesi, Unicode bağlamında "karakterler oluşturulabilir" olarak daha iyi ifade edilir.
Unicode karakterleri tanımlar ancak diğer grafik veya karakterlerle oluşturulacak grafikemleri de tanımlar. Oluşturduğunuz bu canavarlıklar bunun güzel bir örneğidir. Belki yakalarlarsa Unicode'un sonraki bir sürümünde kendi kod noktalarını alırlar;)
Bütün bunlar için tekrarlayan bir unsur var. Daha yüksek seviyelerde, grafemler karakterler grafem haline gelir, ancak grafemiler tamamen aşağıya iner.
TS'ye Yanıt
Standart durumların 1. Bölümü : "Unicode karakter kodlaması alfabetik karakterleri, ideografik karakterleri ve sembolleri eşit şekilde ele alır, bu da herhangi bir karışımda ve eşit olanaklarla kullanılabileceği anlamına gelir". Bu açıklama göz önüne alındığında, standartta bazı terimlerin bir araya getirilmesine hazırlıklı olmalıyız. Bazen uygun terminoloji, geriye dönük olarak standart geliştikçe netleşir.
Genellikle bir dilin resmi tanımlarında, iki temel şeyin birbirleri açısından tanımlandığı görülür. Örneğin,
XML'de bir öğe başlangıç etiketi ve ardından içerik ve ardından bitiş etiketi olarak tanımlanır. İçerik sırayla bir öğe, karakter verisi veya birkaç olası şey olarak tanımlanır. Kendi kendine referans tanımları örüntüsü, Unicode standardında da ima edilmektedir:
Bir grafik kod noktası veya karakterdir.
Bir karakter, bir veya daha fazla grafik aralığından oluşur.
Bu iki tanımla ilk karşılaştığında, okuyucu bir kod noktasının bir karakter olduğu gerekçesiyle ilk tanıma itiraz edebilir , ancak bu her zaman doğru değildir. İki kod noktasından oluşan bir dizi bazen normalleştirme altında tek bir kod noktasını kodlar
ve bu kodlanmış kod noktası, şekil 2.7'de gösterildiği gibi karakteri temsil eder
. Diğer kod noktalarını kodlayan kod noktalarının dizileri. Bu biraz zorlaşıyor ve kod noktalarını bayt dizilerine kodlamak için UTF-8 gibi karakter kodlama şemalarının kullanıldığı katmana bile ulaşmadık .
Bazı bağlamlarda, örneğin aksanlarla ilgili bir bilimsel makale
ve bir karakterin bireysel kısmı metinde tek başına görünebilir. Bu bağlamda, bireysel karakter kısmı bir karakter olarak kabul edilebilir, bu nedenle Unicode standardının da esnek kalması mantıklıdır.
Mark Avery'nin işaret ettiği gibi, bir karakter daha karmaşık bir şey haline getirilebilir. Yani, her karakter istenirse bir grafik görevi görebilir. Tüm kompozisyonun nihai sonucu "kullanıcının bir karakter olarak düşündüğü" bir şeydir. Standartta veya bu tartışmada, en üst düzeyde kullanıcının bireysel karakterler olarak düşündüğü şeylerin olduğu fikrine karşı gerçek bir direnç yok gibi görünüyor. Bu terimi aşırı yüklemekten kaçınmak için, bir karakter oluşturmak için kullanılan parçalara başvurmak istediğimiz tüm durumlarda "grapheme" kullanabiliriz.
Unicode standardı zaman zaman terminolojisi ile her yerde bulunur. Örneğin, Bölüm 3
UTF-8'i "kodlama formu" olarak tanımlarken, sözlükte "kodlama formu" başka bir şey olarak ve UTF-8 "Karakter Kodlama Şeması" olarak tanımlanmaktadır. Başka bir örnek, hatalar olarak kabul edilen , ancak tasfiye edilmesi biraz görev olduğu için devam eden "Grapheme_Base" ve "Grapheme_Extend" dir . Standart tarafından kullanılan terminolojiyi sıkılaştırmak için yapılması gereken çalışmalar vardır.
Grafem Birleştirici eklenmesi önerisi bunun belirtti yanlış zaman got it "grafemler o tekabül kullanıcıların karakter olarak ne düşündüğünü birinden dizileri ya da daha fazla kodlanmış karakterlerdir." Bunun yerine, "Bir veya daha fazla grafikten oluşan bir dizi, kullanıcının bir karakter olarak ne düşündüğünü oluşturur." Daha sonra "grafik dizisi" terimini "karakter dizisi" teriminden farklı olarak kullanabilir. Her iki terim de faydalıdır. "grafik dizisi" düzgün bir şekilde daha küçük parçalardan bir karakter oluşturma işlemini ifade eder. "karakter dizisi", hepimizin bunu kastettiği anlamına gelir: "Kullanıcının karakter olarak düşündüğü şeyler dizisi."
Bazen bir programcı gerçekten grafik dizileri düzeyinde çalışmak istemektedir, bu nedenle bu dizileri incelemek ve manipüle etmek için mekanizmalar mevcut olmalıdır, ancak genellikle metni işlerken "karakter dizileri" (kullanıcının düşündüğü şey) üzerinde çalışmak yeterlidir. karakter olarak) ve sistemin daha alt düzey ayrıntıları yönetmesine izin verin.
Bu tartışmada şu ana kadar ele alınan her durumda, bölünmez bileşenlere atıfta bulunmak için "grafik" ve oluşturulan varlığa atıfta bulunmak için "karakter" kullanmak daha temizdir. Bu kullanım aynı zamanda her iki terimin de köklü anlamlarını daha iyi yansıtır.