UTF-8 8-bitlik bir Unicode dönüşüm formatıdır (İng: Unicode Transformation Format ‘ın kısaltması). Unicode karakterlerini değişken uzunluklu bayt guruplarıyla kodlamakta kullanılır. Rob Pike ve Ken Thompson tarafından geliştirilmiştir.

UTF-8 kodlaması Unicode karakterlerini 1-6 byte uzunluğunda diziler olarak kodlar. ASCII kodlaması içinde 0-127 arasında kalan karakterler aynen kendi kodları ile kullanılır, diğerleri ise byte dizileri haline gelir.

UTF-8 Özellikleri

Evrensel kodlama ile aynı sayfada farklı lisanları göstermek mümkün olabilmektedir. Ayrıca özel hazırlanmış klavyeler ile matematiksel ifadeleri yazmak da mümkün. Bütün bu farklı karakterler UTF-8 sayesinde aynı sayfada görüntülenebilmektedir. Eski stil kodlama ile türkçe karakterlerin – aslında latin alfabesinde olmayan ya da özel işaretli harflerin de – gösterimi için oldukça karışık olan harf ve rakam dizgileri kullanmak gerekiyordu. Mesela Ş harfini yazmak için Ş küçük ş içinse ş yazmak gibi.

UTF kullanarak 1 milyondan fazla karakter kodlanılabilinmektedir. Sıklıkla kullanılan 65536 karakterin kodlaması bu 1 milyondan fazla kodlamada ilk sıralarda yer almaktadır.

UTF-8 Örnekler

A = 00000000 010000012, yani sağ baştan sıfırdan başlayarak sayıldığıda 2′nin katları şeklinde 20 ve 26′yı toplayarak 65 sayısını elde ediyoruz. Windows için ALT-tuşuna basılı tutarak nümerik klavyeden 65 yazdığı zaman A harfı çıkar.

天 = 0×59 0×298 = 01011001 001010012 = ALT-tuşu + 22825
⇔ = 0×21 0xd38 = 00100001 110100112 = ALT-tuşu + 1587
α = 0×03 0xb18 = 00000011 101100012 = ALT-tuşu + 945

Veritabanı ve Programlamada UTF-8′in yeri:

Programlama ve Veri depolamada UTF-8‘in yeri oldukça önemlidir.

UTF-8′in çeşitleri vardır, bunlar temel olarak:
utf8_bin : Unicode – Çok Dilli (Universal Code – Unicode) – İkili (Binary)
utf8_czech_ci : Çekçe – Büyük ve Küçük harfe duyarsız
utf8_danish_ci : Danca – Büyük ve Küçük harfe duyarsız
utf8_esperanto_ci : Esperanto – Büyük ve Küçük harfe duyarsız
utf8_estonian_ci : Estçe – Büyük ve Küçük harfe duyarsız
utf8_general_ci : Unicode (çokdilli) – Büyük ve Küçük harfe duyarsız
utf8_hungarian_ci : Macarca – Büyük ve Küçük harfe duyarsız
utf8_icelandic_ci : İzlandaca – Büyük ve Küçük harfe duyarsız
utf8_latvian_ci : Litvanyaca – Büyük ve Küçük harfe duyarsız
utf8_lithuanian_ci : Litvanyaca – Büyük ve Küçük harfe duyarsız
utf8_persian_ci : Farsça – Büyük ve Küçük harfe duyarsız
utf8_polish_ci : Polonyaca – Büyük ve Küçük harfe duyarsız
utf8_roman_ci : Batı Avrupa – Büyük ve Küçük harfe duyarsız
utf8_romanian_ci : Romence – Büyük ve Küçük harfe duyarsız
utf8_slovak_ci : Slovakça – Büyük ve Küçük harfe duyarsız
utf8_slovenian_ci : Slovence – Büyük ve Küçük harfe duyarsız
utf8_spanish2_ci : Geleneksel İspanyolca – Büyük ve Küçük harfe duyarsız
utf8_spanish_ci : İspanyolca – Büyük ve Küçük harfe duyarsız
utf8_swedish_ci : İsveççe – Büyük ve Küçük harfe duyarsız
utf8_turkish_ci : Türkçe – Büyük ve Küçük harfe duyarsız
utf8_unicode_ci : Unicode – Çok Dilli (Universal Code – Unicode) Büyük ve Küçük harfe duyarsız
21 çeşittir.

Eğer Türkçe karakterler ve bunun yanında birkaç dilin karakterlerini kullanmayı düşünüyorsanız UTF-8 Unicode (utf8_unicode_ci) tam sizin için.
Eğer UTF-8 Unicode kullanırsanız, artık yazılım geliştirme ortamınızın, veritabanınızın ve html kodlarınızın karakter setlerinin farklılığından kaynaklanan görüntüleme problemlerinden kurtulacaksınız.
Şimdi size birkaç yazılım geliştirme ortamında UTF-8 ayarının yapılabilmesi için izlemeniz gereken yönergeleri anlatacağım:
Zend Development Environment:
Araçlar (Tools) -> Tercihler… (Preferences…) -> Masaüstü (Desktop) tabının içinde Kodlama (Encoding) seçeneğini UTF-8 olarak ayarlamanız yeterli.
Notepad :
Dosya (File, Save) kayıt penceresinde, Kodlama (Encoding) seçeneğini UTF8 olarak ayarlamanız yeterli.
Notepad++ :
Ayarlar (Settings) -> Tercihler (Preferences) -> Yeni bir Belge (New a Document) -> Encoding bölümünden UTF-8 seçmeniz yeterli.
Dreamweaver :
Düzen (Edit) -> Tercihler (Preferences) -> Fonts (Yazı tipleri) -> Unicode ve ayrıca Yeni (New Document) bölümünden Unicode’u seçmeniz yeterli.

***

Eğer Türkçe karakterler ve bunun yanında birkaç dilin karakterlerini kullanmayı düşünüyorsanız UTF-8 Unicode (utf8_unicode_ci) size önerilir.

Utf-8 Sorun ve Çözümleri
Utf-8, Google’ ın en çok tercih ettiği karakter dili olması ve SEO,Pretty Url gibi optimizasyon araçlarının desteklediği karakter grubu olması nedeniyle webmasterlar bu dili tercih ederler.Fakat bu dil SMF scriptinde “ISO-8859-9″ karakter dilini kullananlar Türkçe karakter sorunları yaşamaktadır.Bu sorunlar nelerdir ve çözümleri nelerdir:

1- Utf-8 i sorunsuz şekilde kurabilmek(Modifikasyonlar bozulmadan):
Admin/Forum Bakımından “Veri ve veritabanını utf-8 e dönüştür” seçeneği ile önce veritabanı utf-8 e dönüştürülür.Daha sonra gerekli utf-8 dosyaları default ya da kullandığınız temanın languages klasörüne atılır.Modifikasyonları bozmamak için de:
Mesela “Modification.turkish.php” dosyasında modifikasyonların dil değişkenleri yer alıyorsa bu dosya Notepad dosyasında açılarak Farklı Kaydet seçeneği seçilir ve kodlama Utf-8 olarak işaretlenerek dosya ismi sonuna -utf8 yazılarak kaydedilir.Daha sonra languages klasöründekiyle yer değiştirilir.(mesela Modification.turkish-utf8.php gibi) Şayet hata alırsanız “ayarlari_onar.php yi çalıştırın ve dil kısmına “turkish-utf8” yazın.Ayrıca Settings.php dosyanızda

 

 

kodundan evvel

diye bir karakter seti kodu varsa silin.Forum Seçenekleri/Sunucu Ayarlarından

da dil seçeneklerindenturkish-utf8i işaretleyin.

Bu işlemlerin en sonunda kategori ve forum başlığınızdaki isimler de (şğ,ç…) gibi karakterler ve ondan sonraki karakterler silindiği için tekrar yazmanız gerekiyor

2- Utf-8 i sorunsuz ve güvenli bir yoldan kaldırma

phpmyadmin den tablolarınızı tek tek seçerek “İşlemler” seçeneğinden karakter karşılaştırmasını değiştirip,languages klasörünüzden utf 8 dil dosyalarını silerek kaldırabilirsiniz.

Türkçe karakter Desteği UTF-8

Bir cok kisinin biligi gibi utf kodlama yapisinda turkce karakterlerin sekli asagida verdigim tablodaki gibidir, yani utf-8 karakter setini kullandiginiz bir sayfada turkce karakterler duzgun cikmayacaktir, ve bozuk gorunerek sayfanizi bakilamaz hala getirecektir, isde burda asagidaki tablodaki turkce karakterlerin altigi utf-8 karakterini kullandiginizda normal sayfaya bakarkan turkce karakterler duzgun sekilde gorunecektir..

Bu durum şöyle açıklanabilir:
“latin_1,latin_5″ gibi ükle dil kodlarında,diğer ülkelerde ki dili standt hale getirebilmek için,o dil de geçen karakterlerin html karşılıklarını yazmak

gerekir.Bunlar:

UTF-8 Türkçe karakter seti tablosu

Yukaridaki ornege bakarak turkce karakter iceren bir kelime yazmaya calistigimizda, asagidaki gibi yazmamiz gerekecektir.

Aşkım ========> AÅŸkım

Web sayfasinda gorunusu

Aùk^m ======== Aşkım

yukaridaki ornekte gordugunuz gibi turkce karakter iceren bir kelimeyi utf-8 turkce karakter karsiliklariyla yazmamiz gerekli..

ama bu problemi çok kolay da halledebilirsiniz. notepad2 yi indirin ve turkce karakterlerin oldugu dosyamizi bu programla aciniz

dosyayı açtıktan sonra menülerden file>encoding>UTF-8 sectiginizde yazilarinizdaki karakterler artik utf-8 formatinda olacaktir..

Utf-8 charset karakter dil setiyle,bu karşılıkları yazmaya gerek kalmadan kendi dilinizde kullanılan karakterleri bütün dil karakter setleriyle ortak hale getirebilirsiniz.

Kaynak Listesi ve derleme

Bir kısım: Sinan ANDIRMAN

Bir kısım: wordpress-tr

Bir kısım: Kuaza.org

Bir kısım: Selçuk Kılıç

Bir kısım: frm.ekshi.net

16 YORUMLAR

  1. slm ben sitemde 4 dil kullanmak istiorum türkçe-ingilizce-rusça-arapça türkçe we ing sorunsuz çalışıor fakat rusça ve arapçada karakterlerimi tanımıo ??? çıkıo ne yapmam gerekio yardımcı olurmusunuz…

  2. Rusca dil secili sayfalarda asagidaki karakter setini kullanirsaniz sorun yasamazsiniz:

    charset=windows-1251

    Arapca dili icinde utf-8 yeterli oluyor sanirim, asagidaki gibi yapmaniz yeterli.

    charset=UTF-8

Bir Cevap Yazın