Unicode Nedir: Tam Kılavuz, Kullanımlar ve Kodlamalar

Son Güncelleme: 20 Ağustos 2025
  • Unicode her karaktere benzersiz bir kod noktası atar ve repertuarını ISO/IEC 10646 ile senkronize eder.
  • UTF-8, UTF-16 ve UTF-32 aynı karakterleri kodlar ve kayıpsız dönüşüme izin verir.
  • Normalizasyon, Bidi ve UCD özellikleri tutarlı karşılaştırma, sıralama ve işlemeyi garanti eder.
  • Unicode'u (tercihen web'de UTF-8) benimsemek bozulmayı önler ve uluslararasılaşmayı kolaylaştırır.

Unicode hakkında genel bir çizim

Unicode, bilgisayarların metinleri işlerken kullandığı ortak dildir : neredeyse her yazı sisteminden her karaktere ve sembole benzersiz bir numara atar, böylece platformlar ve ülkeler arasında sorunsuz bir şekilde saklanabilir, işlenebilir ve paylaşılabilir.

Bu standart, eski karakter kümelerinin ( ASCII kümesi , kod sayfaları, EBCDIC vb.) yetersiz kalması veya birbirleriyle uyumsuz olması gibi sınırlamalarının üstesinden gelmek için ortaya çıkmıştır ve bugün ISO/IEC 10646 ile senkronize edilmiştir, algoritmaları (çift yönlü olan gibi) korur ve her şeyin tutarlı bir şekilde çalışması için özellikler ve normalleştirme kuralları tanımlar.

Unicode nedir ve neden bu kadar önemlidir?

Unicode , her karakteri bir isim, bir kod noktası ve bir dizi özellik (yazı tipi, kategori, yönlülük, büyük/küçük harf vb.) ile tanımlayan evrensel ve sürekli gelişen bir karakter kodlama standardıdır . Unicode Konsorsiyumu bünyesindeki Unicode Teknik Komitesi (UTC), bu standardı ISO/IEC 10646 standardıyla uyumlu tutar.

Amacı evrensellik, tekdüzelik ve benzersizliktir : net ve tekrarlanabilir kurallarla çok dilli metinlerin belirsizliğe yer vermeden alışverişine olanak tanıyan geniş bir repertuar. Bu sayede modern teknolojiler (işletim sistemleri, tarayıcılar, XML, Java, veritabanları) aynı belge içinde Latin ve Arap alfabelerini, CJK ideogramlarını, emojileri ve teknik veya müzikal sembolleri bir araya getirebilir.

Karakterler, glifler ve kod noktaları

Unicode'da karakter, soyut bir bilgi birimidir ve kod noktası, onun sayısal tanımlayıcısıdır . Glif ise görsel biçimdir (ekranda gördüğünüz şey) ve yazı tipine bağlıdır . Tek bir karakterin birden fazla glife sahip olabileceği gibi, bazen bir glif birden fazla karakteri temsil edebilir.

Bir kod noktasının olağan gösterimi onaltılık sistemde U+XXXX'tir . Analiz edilen materyalden örnekler: küçük harf 'l' U+006C, önceden oluşturulmuş küçük harf 'ü' U+00FC, 'é' U+00E9 ve Yunanca beta: büyük harf U+0392 ve küçük harf U+03B2'dir (bazı metinlerde 'β' U+0392 ile birlikte anılır, ancak bu kod büyük harf 'Β'ye karşılık gelir).

Unicode kod alanı , tüm yazı sistemlerini ve sembollerini kapsayacak ve sınıflandıracak şekilde düzenlenmiş, her sürümde on binlerce etkili ve giderek artan atama içeren 1.114.112 olası konuma (U+10FFFF'e kadar) sahiptir .

Planlar, alanlar ve bloklar

Unicode, karakter uzayını her biri 65.536 kod noktasına kadar olan 17 düzleme ayırır . Bu düzenleme, ilgili yazı sistemlerini ve sembolleri gruplandırmayı ve aradığınızı hızlıca bulmayı kolaylaştırır.

En önemli düzlemler şunlardır : Temel Çok Dilli Düzlem (BMP, düzlem 0) neredeyse tüm modern alfabeleri ve birçok sembolü bir araya getirir; Tamamlayıcı Çok Dilli Düzlem (SMP, düzlem 1) tarihi yazı sistemlerini ve teknik sembolleri (örneğin, müzikal ve matematiksel) depolar; Tamamlayıcı İdeografik Düzlem (SIP, düzlem 2) CJK ideogramlarını genişletir; düzlem 14 (SSP) özel etiketleri içerir; ve düzlem 15 ve 16 özel kullanım içindir.

Bloklar ve alanlar : Haritalar gayri resmi olarak alanlara ve resmi olarak bitişik bloklara ayrılmıştır. Bloklar, karakterleri tablo haline getirmek ve belgelemek için kullanılır, ancak her zaman anlamlı dilsel gruplamalara karşılık gelmezler.

  Bilim ve Teknoloji arasındaki fark nedir?

CJK ideogramları ve Unihan projesi

Doğu Asya (Han) ideogramları, bölgeye göre stilistik farklılıklarla Unicode'da birleştirilmiştir , ancak hepsi aynı soyut karaktere atıfta bulunur. Bunların yönetimi, Çin, Japonya, Kore, Vietnam, Hong Kong, Makao, Singapur, ABD ve diğerlerinden temsilcilerin bulunduğu bir ISO/IEC JTC1/SC2/WG2 grubu olan İdeografik Raportör Grubu (IRG) tarafından yürütülmektedir.

Unihan veritabanı, bu ideogramların farklı dillerde ve tarihsel veya kurumsal standartlarda ele alınması için gerekli olan yardımcı bilgileri (okunuşlar, anlamlar, eşdeğerlikler) bir araya getirir.

Başlıca CJK blokları ve uzantıları :

  • CJK Birleşik İdeogramlar (BMP, U+4E00–U+9FFF): 20.992 adet yaygın olarak kullanılan karakter.
  • Uzantı A (BMP, U+3400–U+4DBF): 6.592 daha az sıklıkta görülen ideogram.
  • B–H uzantıları: SMP/SIP/TIP'te bunlar on binlerce daha fazlasına eklenir (B: U+20000–U+2A6DF, 42.720; C: U+2A700–U+2B73F, 4.154; D: U+2B740–U+2B81F, 222; E: U+2B820–U+2CEAF, 5.762; F: U+2CEB0–U+2EBEF, 7.473; G: U+30000–U+3134F, 4.939;
  • Diğer ilgili CJK blokları: Kangxi radikalleri (U+2F00–U+2FDF), CJK sembolleri ve noktalama işaretleri (U+3000–U+303F), Uyumluluk ve uyumluluk biçimleri, Uyumluluk ideogramı eki, vb.

Unicode, ideogramların dahil edilmesinin mutlak bir sonu olmayacağını öngörüyor ve kodlanmamış sembolleri mevcut bileşenlere ayırarak temsil etmek için ideografik tanımlama dizileri gibi mekanizmaları düşünüyor (ancak bazı uyarılar da var: kanonik ayrıştırma veya arama veya sıralama gibi işlemlerde garanti olmaksızın).

Kodlama biçimleri: UTF-8, UTF-16 ve UTF-32

Unicode , yazılımların metni bağlamına göre verimli bir şekilde işleyebilmesi için kod noktalarını depolama birimlerine dönüştüren dönüşüm biçimlerini (UTF) tanımlar .

UTF-8, tek bir baytta U+0000–U+007F aralığında ASCII ile uyumlu, değişken uzunluklu, bayt odaklı bir kodlama biçimidir. Mevcut standart, karakter başına 1 ila 4 bayt kullanır; bazı eski metinlerde 1-6 bayttan bahsedilse de, modern Unicode'da 1-4 bayttır. Web'de baskın biçimdir.

UTF-16, 16 bitlik birimler kullanır.

(karakter başına bir veya iki kod birimi) : çoğu BMP karakteri bir birime sığar; ek karakterler U+D800–U+DFFF aralığındaki vekil çiftleri kullanır.

UTF-32, sabit uzunluktadır: karakter başına 4 bayt; basit ancak yer kaplayan bir yapıya sahiptir; doğrudan karakter indekslemenin önemli olduğu ve bellek sorununun olmadığı durumlarda kullanışlıdır.

UTF-8'de bitler nasıl dağıtılır?

UTF-8 formatı, kod noktası bitlerini 1 ila 4 baytlık diziler halinde , tanınabilir başlıklarla dağıtır; bu da belirsizlikleri önler ve karakter sınırlarının tespitini kolaylaştırır.

Unicode Aralığı Bit deseni Bytes
U+0000..U+007F 0xxxxxx 1
U+0080..U+07FF 110yyyyy 10xxxxxx 2
U+0800..U+FFFF 1110zzzz 10yyyyyy 10xxxxxx 3
U+010000..U+10FFFF 11110uuu 10uuuzzzz 10yyyyyy 10xxxxxx 4

UTF-8'in en önemli avantajlarından biri, bayt sıralaması (endianlık) sorunlarını ortadan kaldırması ve ASCII ile geriye dönük uyumluluğunun yanı sıra metin akışlarının son derece verimli bir şekilde işlenmesine olanak sağlamasıdır.

Kodlama şemaları, baytlık ve BOM

UTF biçimlerine ek olarak, Unicode, farklı endianlıklara sahip sistemler arasında baytların nasıl iletildiğini ve bayt sırası gibi hususların nasıl işaretlendiğini çözen serileştirme şemalarını tanımlar.

  • UTF-8: endianlık geçerli değildir. Taşınabilir. Bayt Sipariş İşareti (BOM) bir ipucu olarak, ancak varsayılan olarak gerekli veya önerilmez.
  • UTF-16: BE/LE (büyük/küçük uçlu) varyantları ve isteğe bağlı BOM (eğer eksikse ve protokol tarafından tanımlanmamışsa, büyük uçlu olduğu varsayılır).
  • UTF-32: Benzer kurallara sahip BE/LE varyantları; BOM'un sipariş işareti olarak kullanılmasına izin verilir.
  Günlük Yaşamda Pisagor Teoremi

Ayrıca, GB18030'a (basitleştirilmiş ve geleneksel Çince desteğiyle UTF-8'in Çince karşılığı) ek olarak, UTF-16BE/UTF-16LE ve UTF-32BE/UTF-32LE (geleneksel olarak BOM olmadan) gibi belirli varyantlar ve UTF-7 veya UTF-EBCDIC gibi diğer tarihsel uyumluluk kodlamaları da mevcuttur.

Normalizasyon, kompozisyon ve eşdeğerlikler

Birçok karakter, önceden oluşturulmuş veya temel + birleştirme işaretleri dizisi olarak temsil edilebilir . Gözden geçirilmiş materyalden klasik örnekler: önceden oluşturulmuş 'Ä' U+00C4 iken, ayrıştırılmış hali 'A' (U+0041) + iki nokta işareti (U+0308)'dir. Vietnamca 'ỗ' ise 'o' (U+006F) + şapka işareti (U+0302) + tilde (U+0303) olarak temsil edilebilir.

Unicode, standartlaştırılmış biçimleri ve iki tür eşdeğerliği tanımlar : kanonik (aynı temel içerik) ve uyumluluk (görünüşte aynı olan ancak anlamsal farklılıklar içeren biçimler). Standardizasyon, güvenilir dize karşılaştırmasını sağlar ve tekrarlamayı azaltır.

Çift yönlü algoritma ve özel karakterler

Arapça veya İbranice gibi sağdan sola yazılan diller için Unicode, standartlaştırılmış ve gelişen çift yönlü bir algoritma (Bidi) (örneğin, 6.3 sürümündeki revizyonlar) içerir; böylece Latin ve Arapça karakterlerin karışık olduğu metinler doğru görsel sırada temsil edilir.

Alınan materyale göre bilinmesi gereken kod noktası sınıfları şunlardır : grafik karakterler (harfler, işaretler, semboller), biçimlendirme (işlemeyi etkileyen görünmez karakterler: U+2028 satır sonu, U+2029 paragraf sonu, U+00A0 boşluk), uyumluluk için miras alınan kontrol kodları (U+0000–U+001F, U+007F, U+0080–U+009F aralıkları), özel kullanım, ayrılmış konumlar, yerine geçen karakterler (UTF-16 için U+D800–U+DFFF) ve karakter olmayan karakterler (her düzlemde U+FFFE, U+FFFF).

Unicode, ISO/IEC 10646 ve diğer standartlar (ASCII, ANSI, kod sayfaları)

Unicode, ISO/IEC 10646 (UCS) ile senkronize edilmiştir ve önceki standartlara (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643, vb.) eşlemeleri korur; ayrıca üreticilerin özel kullanımı için de alanlar ayırır.

ASCII ve Unicode Karşılaştırması : ASCII, 128 karakterden oluşan 7 bitlik bir karakter kümesidir ; temel İngilizce için yeterlidir, ancak aksanlı işaretler, ideogramlar veya emojiler içeren diller için yetersizdir . Unicode ise 140.000'den fazla karakteri kapsar ve UTF-12 formatına göre 8/16/32 bit kodlama ile büyümeye devam etmektedir.

ANSI ve kod sayfaları : 'ANSI' genellikle sınırlı ve birbirleriyle uyumsuz 8 bitlik Windows kod sayfalarını ifade eder. IBM EBCDIC-Cyrillic'te metin açan bir OEM-Latin II çalıştıran bilgisayar yanlış karakterler görecektir. Unicode, tek bir karakter kümesi ve kendi biçimleri arasında kayıpsız dönüşümler ile bu sorunun üstesinden gelir.

Sistemlere (Windows, Solaris) uygulanması ve dönüştürülmesi

Windows, modern API'leri için dahili olarak UTF-16 kullanır ve Unicode ile kod sayfaları (SBCS/DBCS/MBCS) arasında dönüştürme için MultiByteToWideChar ve WideCharToMultiByte gibi özellikler sunar. Eğer bir kod sayfasına dönüştürmek zorunda kalırsanız, tüm karakterleri temsil edememesi durumunda veri kaybı yaşanabilir .

Windows'ta yeni uygulamalar dahili olarak UTF-16 kullanmalı ve dönüştürmeyi uç noktalara (giriş/çıkış, protokoller) bırakarak bozulmayı en aza indirmelidir. Bununla birlikte, Windows kaçınılmaz olduğunda kod sayfalarıyla uyumluluğu korur.

Güncellenmiş belgelere göre, Oracle Solaris 11, sistem düzeyinde Unicode 6.0 ve ISO/IEC 10646:2011'i desteklemekte olup, parametre setlerinde varsayılan format olarak UTF-8 kullanmaktadır. Bu sayede bayt sıralama sorunları ortadan kaldırılmakta ve ASCII karakterleri şeffaf bir şekilde korunmaktadır.

Uygulamada Unicode: Web, Belgeler ve Programlama

Web'de, içeriği UTF-8 olarak sunmak ve depolamak yaygındır . HTML'de, uyumluluğu sağlamak için '<meta charset="UTF-8">' ifadesini kullanın ve gerektiğinde onaltılık sayısal varlıklar kullanın (örnek: euro '&#x20AC;').

  HP Bilgisayarlar: En İyi Modeller

Word'de, imleci yerleştirerek, Ekle > Sembol'e giderek veya kodu yazıp Alt+X tuşlarına basarak Unicode sembollerini kolayca ekleyebilirsiniz; bu işlem, standart prosedürleri izleyerek değeri karaktere dönüştürür. Klavyeden sembol eklemek için Alt kodlarının listesine de bakın.

Programlama dillerinde : Python 3'te dizeler zaten Unicode'dur; Java ve C#'da '\uXXXX' kaçış karakterlerini kullanabilirsiniz; HTML'de ise '&#xXXXX;'. Önemli olan, hataları önlemek için düzenleme, derleme ve iletimin aynı kodlamayı kullanmasıdır.

Sembolleri kopyalayıp yapıştırmak, dizenin tamamı Unicode ise çalışır . Eğer dizenin bazı bölümleri farklı bir kodlama kullanıyorsa, soru işaretleri, kareler veya diğer garip semboller görünebilir.

Karakter veritabanı (UCD), özellikler ve kategoriler

Unicode Karakter Veritabanı (UCD), her bir kod noktası için adını, kategorisini, yazı sistemini, büyük/küçük harf özelliklerini, yönünü ve diğer özelliklerini yayınlar . Bu bilgiler, görüntüleme motorlarının ve metin işlemenin doğru çalışması için hayati öneme sahiptir.

Bu özellikler sayesinde , farklı bileşenler ve algoritmalar (sıralama, kelime bölme veya büyük/küçük harf dönüştürme gibi) aynı verilerle tutarlı bir şekilde çalışabilir.

Standardın sürümleri ve uzantıları: önemli noktalar

Unicode her sürümde yeni yazı sistemleri, semboller ve emojiler ekleyerek büyüyor. Önemli kilometre taşları arasında 1991'de 7.161 karakter içeren 1.0 sürümü ve daha sonra binlerce yeni sembol, ideogram, emoji ve yazı sistemi ekleyen genişlemeler yer alıyor.

Örneğin, 2022'de 15.0 sürümü, 4.192 ilave CJK ideogramı ve diğer öğeleri ekleyerek yaklaşık 149.186 karaktere ulaştı.

Unicode tablosunu keşfetmek için araçlar

Karakter arama ve analiz etme için ücretsiz araçlar mevcuttur : Unibook Character Browser, SYMBL ve Branah.com, özellikleri, adları ve karakter bloklarını sorgulamanıza olanak tanıyarak geliştiricilerin ve içerik oluşturucuların ihtiyaç duydukları bilgilere hızlı bir şekilde ulaşmalarını kolaylaştırır.

Kullanım örnekleri: adres formları, uluslararasılaşma ve iş

Kullanıcıların adresleri kendi dillerinde ve yazı sistemlerinde girmelerine izin vermek, hataları azaltmaya ve kullanıcı deneyimini iyileştirmeye yardımcı olur. Ek olarak, Unicode birlikte çalışabilirliği, farklı sistemler arasındaki dönüştürme sorunlarını önleyerek dijital zincir boyunca metin bütünlüğünü korur.

Bu nedenle Unicode, web formlarından veritabanı sistemlerine ve basılı belgelere kadar dijital altyapının tamamında metnin nihai kalmasını sağlayan temel unsurdur ; aynı cümlede 'ñ', Arapça, Çince veya emojiler kullanmanız fark etmez.

İkili sayılandırma
İlgili makale:
İkili sayılandırma: Bilgisayarların gizli dili