Unicode

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:
unicodedünya üzerinde kayıtlı olan tüm karakterlerehexadecimal (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.

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 value | rune (character) |
|---|---|
| ♄ | ♄ |
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 :
| hexadecimal | rune(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, 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 Kodu | Karakter 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-8 | Binary |
|---|---|
| merhaba | 01101101 01100101 01110010 01101000 01100001 01100010 01100001 |
Yukarıdaki tabloyu harf karşılıklarına çevirirsek:
| UTF-8 | Binary |
|---|---|
| m | 01101101 |
| e | 01100101 |
| r | 01110010 |
| h | 01101000 |
| a | 01100001 |
| b | 01100010 |
| a | 01100001 |
Ö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.