SORU
13 Mart 2009, Cuma


UTF-8 Unicode vs

Vikipedi, see here göre insanların farklı görüş duydum

Aynı şey, değil mi? Birisi aydınlatabilir mi?

CEVAP
13 Mart 2009, Cuma


Başkalarının verdiği cevapları genişletmek için:

Bilgisayarlar ideal görünen karakterler, bir sürü dil, bir sürü var. Unicode her karakter benzersiz bir numara ya da kod noktası atar.

Bilgisayarlar anlaşma ile bu sayı olarak bayt atlanıyor... biraz da tarih burada ve görmezden bellek sorunları ele almak, 8-bit bilgisayarlar öyle hareket et 8 bitlik bayt olarak en büyük sayısal birim kolayca temsil donanımı, 16-bit bilgisayarlar olurdu genişletmek için iki bayt, ve benzeri.

Eski karakter kodlamaları gibi ASCII (pre-) 8-bit dönemi ve denemek tıkmak baskın dilde hesaplama zaman, yani İngilizce, sayılar kadar 0 ila 127 (7 bit). Ve olmayan sermaye formu, sayılar ve noktalama işaretleri sermaye hem de alfabede 26 harf ile, bu oldukça iyi çalıştı. ASCII var genişletilmiş bir 8 bit için diğer non-İngilizce dillerinde, ama ek 128 sayı/puan kod kullanıma göre bu genişleme olur eşlenen farklı karakterlere bağlı olarak bir dil olma görüntüleniyor. ISO-8859 standartları en yaygın biçimleri, bu eşleştirme; ISO-8859-1, ISO-8859-15 (olarak da bilinen ISO-Latin-1, latin1, ve evet iki farklı versiyonu olan ISO 8859 standart olarak).

Ama tek bir byte içine mevcut tüm karakterler tıkınma sadece işe yaramaz bu yüzden Birden fazla dil karakterleri temsil etmek istediğinizde yeterli değil.

Aslında kodlamalar iki farklı türü vardır: bir tane daha ekleyerek bit değer aralığı genişletir. Bu kodlamalar örnekleri UCS2 (= 16 bit 2 byte) ve UCS4 (= 32 bit 4 byte) olur. Eğer sınırı daha yüksek bile olsa doğal olarak ASCII ve kendi değer aralığı hala sınırlı olarak ISO-8859 özellikte, aynı sorun, çok acı çekerler.

Diğer kodlama tipi bayt başına karakter sayısı değişken kullanır ve bunun için en yaygın olarak bilinen kodlamaları UTF kodlamaları. Tüm UTF kodlamaları iş kabaca aynı şekilde: seçtiğiniz bir birim boyutu, UTF-8 (8 bit), UTF-16, 16 bit, ve UTF-32 ise 32 bit. Tanımlar bayrakları gibi bu bitler bir kaç sonra standart: eğer hazır olursa, o zaman birimleri sırası bir sonraki birim aynı karakterinin bir parçası olarak kabul etmektir. Eğer hazır değilse, bu birim bir karakter tam olarak temsil eder. Böylece en sık (İngilizce) karakter sadece işgal bayt UTF-8 (iki UTF-16, 4 UTF-32), ama diğer dil karakterleri işgal altı bayt veya daha fazla.

Multi-byte kodlama (demeliyim çok birimli sonra yukarıdaki açıklama) avantajı, onlar nispeten daha az yer kaplayan, ancak olumsuz işlemleri gibi alt dizeleri bulma, karşılaştırma, vb. tüm bu işlemler yapılabilir önce unicode kod noktaları için karakter kodunu çözmek için (bazı kısayolları var ama).

Hem DİK standartları ve UTF standartları Unicode olarak tanımlanan kod noktaları kodlamak. Teorik olarak, bu kodlama herhangi bir sayı kodlamak için kullanılabilir (aralığında kodlamayı destekler) - ama tabii bu kodlamaları Unicode kod noktaları kodlamak için yapıldı. Ve bu ikisi arasında bir ilişki.

Windows sözde "en varsayılan UTF-8 Bu gün için Unix ise" UTF-16 dizeleri dizeleri. Unicode kolları HTTP gibi protokolleri en iyi UTF-8 birim boyutu olarak UTF-8 ile çalışmak eğilimindedir iletişim ASCII ile aynı olur, ve bu tür protokolleri ASCII dönemde tasarlanmıştı. Öte yandan, UTF-16 en iyisini verirortalamauzay/işleme yaşayan tüm dilleri temsil eden bir performans.

Unicode standardı 32 bit temsil edilebilir ve daha az kod noktaları tanımlar. Böylece tüm pratik amaçlar için, UTF-32 ve UCS4 UTF-32-ünite multi karakterler ile uğraşmak zorunda için olası konum olarak aynı kodlama oldu.

Bazı boşlukları doldurur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • MW Technology

    MW Technolog

    28 EKİM 2009
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011