Unicode

unicode-image

Dünyada bir çok yazı dili ve de çeşitli alfabe ve notasyonlar bulunmaktadır.Çince, Japonca, Sanskritce,Arapça, Kril vb. alfabeler farklı yazı karakterlerini barındırmaktadırlar.

Bilgisayar bilimlerinde bu karakterlerin farklı dillerdeki kullanıcılara ait bilgisayarlarda görüntülenmesi esnasında karışıklık olmaması adına unicode denilen bir karakter sisteminde tutulmaktadır.

TANIM: unicode dünya üzerinde kayıtlı olan tüm karakterlere hexadecimal (onaltılık) bir değer atayan bir sistemdir.

Her karaktere hexadecimal bir değer atanmasının sebebi farklı bilgisayar sistemlerinde doğru karakterin görüntülenebilmesidir.

connection-diagram

Misal Sanskritçe bir karakteri bir İngiliz, bir Alman veya bir Rus bilgisayarlarında sorunsuz olarak bu sistem sayesinde görüntüleyebilmektedir.

Detaylı Bilgi : Wikipedia - Unicode


Unicode Çalışma Mantığı

hexadecimal valuerune (character)
&#x2644

Latin alfabesinde yer almayan herhangi bir karakter bilgisayar hafızasında hexadecimal karşılığı ile saklanır. Bu sayede ilgili karakterin içinde yer aldığı web sayfası, metin editörü gibi yapılarda karakter kayıpsız ve net olarak görüntülenebilir.

Bu karakter hem Unicode sisteminde yer almaktadır, hem de 140.000'den fazla karakter barındıran Unicode'un ilgili alt kümesinde yer almaktadır.

Başka bir örnek verelim :

hexadecimalrune(character)
0634ش

Unicode hexadecimal değeri 0634 olan Arapça şın karakteri aynı zamanda, ISO-8859-6(Arabic) kümesinin de bir elemanıdır.

şın ISO-8859-6 içinde farklı bir hexadecimal ile gösterilebilir. Bilinen tüm karakterlerin evrensel kodlaması Unicode ile yapıldığı için karakterler bu sisteme çevrilerek değer ataması yapılır.

Bir metin özellikle ISO-8859-6 kodlamasıyla yazılmadığı sürece bilgisayar sisteminde Unicode olarak saklanır.

Detaylı Bilgi: Wikipedia : ISO IEC 8859-6

ASCII

ascii-table

ascii-table-two

ASCII, bilgisayarlar arasındaki elektronik iletişim için standart bir veri kodlama formatıdır.

Web sayfalarından ve kodlama yaparken sık karşılaştığımız bu format, American Standard Code for Information Interchange (Bilgi Değişimi için Amerikan Standart Kodu) 'dur. Bilgisayar sistemlerinin temel gelişimi ve kodlama dillerinin ortaya çıkışı Amerika birleşik devletleri temelli olduğu için karakter setleri de bu notasyona göre kodlanmıştır.

ASCII karakter kodlarını en bariz olarak Türkçe uzantılı web sayfalarında görebilirsiniz:

https://www.google.com/search?q=ceviz+%C5%9Feker+balkaba%C4%9F%C4%B1&

Yukarıdaki ifadede türkçe karakterlere ait değerlerin hexadecimal karşılıkları verilmiştir.

URL ifadeleri yalnızca ASCII karakter ifadelerini kullanabilir. Amerikan dilinde mevcut olmayan ş,ğ,ı sesleri ASCII ifadelerine % işareti önüne konularak kodlanır. % ifadeleri karakterler arasındaki boşlukları doldurmak için kullanılır. %C5%9F in ASCII karşılığı C5 9F 'tir.

ASCII KoduKarakter Karşılığı (Rune)
%C5%9Fş
%C4%9Fğ
%C4%B1ı

Yukarıdaki ifademizi bir URLDecoder ile çözdüğümüzde karşımıza :

https://www.google.com/search?q=ceviz+şeker+balkabağı&

şeklinde bir ifade gelecektir.

Ayrıca URLEncoding sitesinden de hangi karakterin neye tekabül ettiğini de görebilirsiniz.

UTF-8 Kodlaması

Unicode ifadelerin alt kümesi olan bu küme genellikle bilgisayar metinlerinde karşımıza çıkmaktadır. Sebebi de bilgisayar anahtar ifadesi olan 1 ve 0 lardan oluşmasıdır.

UTF-8 Kodlamasına çevrilen karakterler bilgisayar dilinde mevcut olan 1 ve 0 lardan oluşan sekiz haneli kodlamalar halinde tutulmaktadır. Bu da binary kodlama türüdür.

Misal vermek gerekirse:

UTF-8Binary
merhaba01101101 01100101 01110010 01101000 01100001 01100010 01100001

Yukarıdaki tabloyu harf karşılıklarına çevirirsek:

UTF-8Binary
m01101101
e01100101
r01110010
h01101000
a01100001
b01100010
a01100001

Özellikle kod editörlerinde UTF-8 kodlaması görmemimizin sebebi makine kodlaması olan binary ye geçiş kolaylığı sağlaması ve kodun hızlı bir şekilde makine tarafından tanınabilmesi içindir.