Karakter (bilgi işlem) - Character (computing)

Gelen bilgisayara ve makine tabanlı telekomünikasyon terminolojisi, bir karakter birimidir bilgilere kabaca tekabül Grapheme , birimi veya sesletim benzeri sembolü örneğin bir olduğu gibi, alfabenin veya hecelerin içinde yazılı bir şeklinde doğal dil .

Karakter örnekleri arasında harfler , sayısal rakamlar , yaygın noktalama işaretleri ("." veya "-" gibi) ve boşluk yer alır . Konsept ayrıca, görünür sembollere karşılık gelmeyen, daha ziyade metni biçimlendirmek veya işlemek için talimatlara karşılık gelen kontrol karakterlerini de içerir . Kontrol karakterlerinin örnekleri arasında satır başı veya sekme ile metin görüntüleyen veya başka bir şekilde işleyen yazıcılara veya diğer aygıtlara yönelik talimatlar yer alır .

Karakterler tipik olarak dizelerde birleştirilir .

Tarihsel olarak, karakter terimi aynı zamanda belirli sayıda bitişik biti belirtmek için de kullanılmıştır . Bir karakterin günümüzde en yaygın olarak 8 bite (bir bayt ) atıfta bulunduğu varsayılırken , 6 bitlik karakter kodu gibi diğer tanımlar bir zamanlar popülerdi (yalnızca büyük harf kullanılırken , sayılar ve noktalama işaretleriyle değil, küçük harfleri de temsil etmek için yeterli bitler kullanılırdı). izin verilir) ve hatta 5 bitlik Baudot kodu geçmişte de kullanılmıştır ve terim yalnızca 16 olası değerle 4 bit için de uygulanmış olsa da, tam olarak temsil edilmemiştir ve gösterilemez. İngilizce alfabe. Ayrıca bkz Evrensel Karakter Seti karakterleri tümü bir veya daha fazla 8-bit ile temsil edilebilir iken, 8 bit temsil etmek yeterli değildir, kod birimlerine sahip UTF-8 .

kodlama

Bilgisayar ve iletişim ekipman kullanarak karakterleri temsil eden bir karakter kodlamasını bu atar şey her bir karakteri - bir tam sayıdır , bir dizi ile temsil edilen miktar basamağı , genellikle, - edilebilir depolanan veya iletilen . Olağan kodlamalara iki örnek, Unicode için ASCII ve UTF-8 kodlamasıdır . Çoğu karakter kodlaması karakterleri sayılara ve/veya bit dizilerine eşlerken , Mors kodu bunun yerine karakterleri değişen uzunlukta bir dizi elektriksel darbe kullanan karakterleri temsil eder.

terminoloji

Tarihsel olarak karakter terimi , endüstri uzmanları tarafından , genellikle programlama dili veya API tarafından tanımlandığı gibi, kodlanmış bir karaktere atıfta bulunmak için yaygın olarak kullanılmıştır . Benzer şekilde, karakter kümesi , belirli bit dizilerine veya sayısal kodlara eşlenmiş belirli bir karakter repertuarına atıfta bulunmak için yaygın olarak kullanılmaktadır. Glif terimi , bir karakterin belirli bir görsel görünümünü tanımlamak için kullanılır. Birçok bilgisayar yazı tipi , karşılık gelen karakterin sayısal koduyla indekslenen gliflerden oluşur.

Unicode ve bit-agnostik kodlu karakter setlerinin ortaya çıkması ve yaygın olarak kabul edilmesiyle birlikte , bir karakter, herhangi bir görsel tezahürden bağımsız olarak giderek artan bir şekilde bir bilgi birimi olarak görülüyor . ISO / IEC 10646 (Unicode) Uluslararası Standart tanımlayan bir karakter veya soyut karakter "veri organizasyonu, kontrol veya gösterimi için kullanılan bir dizi eleman bir üyesi" olarak adlandırılmaktadır. Unicode'un tanımı bunu, okuyucuyu diğer şeylerin yanı sıra karakterler, grafikler ve glifler arasında ayrım yapmaya teşvik eden açıklayıcı notlarla tamamlar. Bu tür bir farklılaşma, daha geniş bir tema olan sunum ve içerik ayrımının bir örneğidir .

Örneğin, İbranice aleph ("א") harfi genellikle matematikçiler tarafından belirli sonsuzluk türlerini (ℵ) belirtmek için kullanılır , ancak sıradan İbranice metinlerde de kullanılır. Unicode'da, bu iki kullanım farklı karakterler olarak kabul edilir ve aynı şekilde oluşturulabilmelerine rağmen iki farklı Unicode sayısal tanımlayıcısına (" kod noktaları ") sahiptir. Tersine, su için Çince logogram ("水") Japonca metinlerde Çince metinlerde olduğundan biraz farklı bir görünüme sahip olabilir ve yerel yazı biçimleri bunu yansıtabilir. Ancak yine de Unicode'da aynı karakter olarak kabul edilirler ve aynı kod noktasını paylaşırlar.

Unicode standardı ayrıca bu soyut karakterler ile bilgisayarlarda temsillerini kolaylaştıran sayısal kodlarla eşleştirilmiş kodlanmış karakterler veya kodlanmış karakterler arasında ayrım yapar .

karakter birleştirme

Birleştirme karakteri de Unicode tarafından ele alınır. Örneğin, Unicode, her birine bir kod noktası tahsis eder.

  • 'ben' (U+0069),
  • birleştirici diaeresis (U+0308) ve
  • 'ï' (U+00EF).

Bu, 'naif' kelimesinin ortadaki karakterini ya tek bir 'ï' karakteri olarak ya da 'i' karakterinin birleştirici ikilem ile bir kombinasyonu olarak kodlamayı mümkün kılar : (U+0069 LATIN KÜÇÜK HARF I + U+0308 KOMBİNE DİARESİZ); bu da 'ï' olarak işlenir.

Bunlar, Unicode standardı tarafından kanonik olarak eşdeğer kabul edilir.

karakter

Bir karakter olarak , C programlama dili tam bir boyutu ile bir veri türü byte da “temel uygulama karakter kümesi” nin herhangi bir elemanı içeren yeterince büyük olarak tanımlanır. Tam bit sayısı CHAR_BITmakro aracılığıyla kontrol edilebilir . Açık farkla en yaygın boyut 8 bittir ve POSIX standardı bunun 8 bit olmasını gerektirir . Daha yeni C standartlarında , minimum 8 bit boyutu gerektiren UTF-8 kod birimlerini tutmak için char gerekir .

Bir Unicode kod noktası en fazla 21 bit gerektirebilir. Bu , çoğu sistemde bir karaktere sığmaz , bu nedenle, her kod noktasının 1 ila 4 bayt aldığı UTF-8 değişken uzunluklu kodlamada olduğu gibi, bazıları için birden fazla kullanılır . Ayrıca, bir "karakter", "karakter" kelimesinin ne anlama geldiğine bağlı olarak birden fazla kod noktası gerektirebilir (örneğin karakterlerin birleştirilmesiyle ).

Bir karakterin tarihsel olarak tek bir baytta saklanması gerçeği, çoğu belgede iki terimin ("char" ve "karakter") birbirinin yerine kullanılmasına yol açtı. Bu, UTF-8 gibi çok baytlı kodlamalar kullanıldığında belgeleri genellikle kafa karıştırıcı veya yanıltıcı hale getirir ve dize işleme işlevlerinin verimsiz ve yanlış uygulamalarına yol açar (örneğin, bir dizenin "uzunluğunu" bir kod birimi sayısı olarak hesaplamak gibi) bayt). Modern POSIX belgeleri, "karakteri" tek bir grafik sembolünü veya kontrol kodunu temsil eden bir veya daha fazla bayt dizisi olarak tanımlayarak bunu düzeltmeye çalışır ve karakter verilerine atıfta bulunurken "bayt" kullanmaya çalışır. Ancak yine de bu tür bir dizi tanımlama gibi hatalar içeren kömürün bir şekilde karakter dizisi (yerine bir bayt dizisi ).

Unicode, char değerinden daha büyük kod birimlerinden oluşan dizelerde de saklanabilir . Bunlara " geniş karakterler " denir . Orijinal C tipine wchar_t adı verildi . Nedeniyle bazı tanımlayan platformlara wchar_t'den 16 bit olarak ve 32 bit olarak tanımlayan başkaları, son versiyonları eklemiş char16_t , char32_t . O zaman bile saklanan nesneler karakter olmayabilir, örneğin değişken uzunluklu UTF-16 genellikle char16_t dizilerinde saklanır .

Diğer dillerin de bir char türü vardır. C++ gibi bazıları, C gibi 8 bit kullanır. Java gibi diğerleri , UTF-16 değerlerini temsil etmek için char için 16 bit kullanır .

Ayrıca bakınız

Referanslar

Dış bağlantılar