Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 4124|Yanıt: 1

ASCII kodu, ISO8859-1, Unicode, GBK ve UTF-8 arasındaki fark

[Bağlantıyı kopyala]
Yayınlandı 11.12.2022 14:01:58 | | |
Neden kodlama gerekiyor?

Bilgisayardaki en küçük depolama birimi bayttır (bayt) ve bir baytla temsil edilebilecek karakter sayısı sınırlıdır, 1 bayt=8bit, bir bayt en fazla 255 karakteri temsil edebilir ve dünyada birçok dil vardır, baytla temsil edilemeyen çeşitli karakterler vardır, bu yüzden Java'daki karakter temsil karakteri bu kodlama problemini çözmek içindir, bir karakter iki bayt kaplar, bu yüzden karakter ile en küçük birim bayt arasında kodlanmalıdır. Tam tersi ise çözmedir.

Aslında, kodlama ve çözme tamamlanan çeviri sürecidir ("çeviri" anlaşılması kolaydır) ve çeşitli kodlama yöntemleri sözlüklerdir.

1. ASCII kodu

Tam isim, dünyanın en yaygın tek baytlı kodlama sistemidir ve esas olarak modern İngilizce ve diğer Batı Avrupa dillerini göstermek için kullanılan Amerikan Standart Bilgi Değişimi Kodudur.

ASCII kodu, yalnızca 128 karakteri temsil edebilen 7 bitle temsil edilir ve 0~31 giriş, geri boş, silme gibi kontrol karakterlerini temsil eder; 32~126, basılmış karakterlerin klavye üzerinden girilebileceği ve gösterilebildiği anlamına gelir.

Bunlar arasında, 48~57 0'dan 9'a on Arap rakamıdır, 65~90 26 büyük İngiliz harf, 97~122 26 küçük İngilizce harf, geri kalanlar ise ASCII standart tablosuna atıfta bulunan noktalama işaretleri, işlem sembolleri vb. gibi örneklerdir.

2、ISO-8859-1

Bu kodlama, ASCII kodlamasının bir uzantısıdır, ancak yine de tek baytlık bir kodlamadır ve toplamda sadece 256 karakteri temsil edebilir.

ASCII yalnızca 128 karakteri temsil edebildiğinden, ekran tam olarak ifade edilemezISO-8859-1, ASCII kodlamayı genişletiyorASCII kodunun üzerine, Yunanca, Tayca, Arapça ve İbranice gibi Batı Avrupa dillerinin metin sembolleri eklenir ve ASCII kodlama ile geriye doğru uyumludur.

3、GB2312

GB2312'nin tam adı "Bilgi Teknolojileri Çin Kodlama Karakter Seti"dir; bu, A1-F7 kodlama aralığına sahip iki baytlık bir kodlamadır ve A1-A9 sembol alanıdır ve toplamda 682 sembol içerir; B0-F7, 6763 kanji içeren kanji alanıdır.

Tam isim, Çin tarafından 1980'de yayımlanan ve ağırlıklı olarak bilgisayar sistemlerinde Çin karakter işleme için kullanılan bilgi alışverişi için kullanılan Çin karakter setidir. GB2312 ağırlıklı olarak 6763 Çin karakteri ve 682 sembol içerir.

GB2312, Çince karakterlerinin çoğunu kapsar, ancak antik Çince gibi nadir özel karakterleri kullanamaz, bu yüzden GBK ve GB18030 gibi kodlar daha sonra ortaya çıkmıştır.

4、GBK

GBK'nin tam adı "Çin Karakter İç Kod Uzantısı Spesifikasyonu"dur ve GB2312'yi genişletmiş gibi görünmektedir; kodlama aralığı 8140-FEFE (XX7F çıkarılmış), toplamda 23940 kod biti vardır ve bu da 21003 Çince karakteri temsil edebilir ve kodlaması GB2312 ile uyumludur

GBK, Çin İç Kod Spesifikasyonu'nun tam adı olarak 1995 yılında formüle edilmiştir. Esas olarak GB2312'yi genişletiyor ve temelinde daha fazla Çince karakter ekliyor; bu karakter toplamda 21.003 Çince karakter içeriyor.

GBK, GB2312 kodlamasıyla geriye dönük uyumludur; bu da GB2312'de kodlanan Çince karakterlerin GBK ile normal şekilde çözülebileceği ve bozuk görünmeyeceği anlamına gelir; ancak GBK ile kodlanan Çince karakterler mutlaka GB2312 ile çözülmez.

5、GB18030

GB18030 tam adı, 2000 yılında yayımlanan ve 2001'de uygulanan en son iç kod karakter seti olan Çin İç Kod Genişletme Spesifikasyonu'dur; Çin'deki çoğu etnik azınlığın dil karakterlerini içerir ve 70.000'den fazla Çince karakter içerir.

Çoğunlukla tek bayt, çift baytlık ve dört baytlık karakter kodlaması kullanır ve GB2312 ile GBK ile geriye doğru uyumludur; ülkemizde zorunlu bir standart olmasına rağmen, gerçek üretimde nadiren kullanılır ve en çok kullanılanlar GBK ve GB2312'dir.

6.UNICODE

Dillerinin bilgisayarda normal şekilde görüntülenebilmesi için, her ülke ve bölgenin kendi kodu vardır, böylece çok fazla kod varsa kimse birbirinin kodunu bilmez. Bu dönemde ISO organizasyonu, küresel kültürleri, karakterleri ve sembolleri desteklemek için UNICODE kodlama adında yeni bir kod önerdi. UNICODE formüle edildiğinde, bilgisayar kapasitesi artık sorun değildi, bu yüzden iki bayt sabit olacak şekilde tasarlandı ve tüm karakterler 16 bitlik olarak temsil edildi; önceden sadece 8 bit kaplayan İngilizce karakterler de dahil olmak üzere, bu yüzden alan kaybı olurdu ve UNICODE uzun süre tanıtılmadı ve uygulanmadı.

7、UTF-16

UTF-16'nın ortaya çıkışı, dünyadaki tüm dillerin birbirini çevirebileceği yeni bir dilüstü sözlük yaratmak için ISO'dur; bu sözlüğün ne kadar karmaşık ve devasa olduğunu hayal edebilirsiniz. UTF-16, Unicode dönüştürme formatını temsil etmek için iki bayt kullanır (iki bayt 16 bittir, yani UTF-16) sabit uzunluklu bir temsil yöntemidir; yani herhangi bir karakter iki baytla temsil edilebilir. Bu da karakterleri temsil etmeyi çok pratik hale getirir. Ancak bir kusur da vardır; yani karakterlerin büyük bir kısmı tek baytla temsil edilebilir, ancak UTF-16 iki bayt kullanır ki bu depolama alanı israfıdır. Yani başka bir kodlama yolu da var, o da UTF-8.

UTF-16, UNICODE'un özel uygulamasıdır, 16 16 bit, UTF-16 ise UNICODE karakterlerinin bilgisayarda nasıl saklandığını tanımlayan orijindir, UTF-16 ayrıca herhangi bir karakteri temsil etmek için iki bayt kullanır; bu da işlem dizisini çok verimli kılar; bu da java'nın UTF-16'yı karakterlerin bellekte depolanması için bir format olarak kullanmasının önemli bir nedenidir.

UTF-16, disk ile bellek arasında kullanım için uygundur ve karakter ile baytların birbirine ve birbirinden dönüştürülmesi daha basit ve verimli olur, ancak ağ iletimi için uygun değildir ve bu bayt akışına zarar verebilir.

8、UTF-8

UTF-8, her kodlama bölgesinin farklı kod uzunluklarına sahip olduğu ve farklı karakter türlerinin 1-6 baytlık olabileceği değişken uzunluklu bir teknoloji kullanır.

UTF-8 için kodlama kuralları şunlardır:

1) Eğer 1 baytlık ve en yüksek bit 0 ise, bu 1 ASCII karakter demektir. Tüm ASCII kodlamalarının zaten UTF-8 olduğu görülebiliyor

2) Eğer 1 baytsa, 11 ile başlarsa, ardışık 1 sayısı bu karakterin bayt sayısını gösterir; örneğin: 110xxxxx iki baytlı UTF-8 karakterinin ilk baytı olduğu anlamına gelir

3) Eğer 1 baytsa, yani 10 baytla başlarsa, bu ilk bayt olmadığı anlamına gelir, mevcut karakterin ilk baytını almak için ileriye bakmanız gerekir.

UTF-16 çok verimli olmasına rağmen, aynı zamanda UNICODE'un en büyük dezavantajıdır; bu nedenle tüm tek baytlık karakterler iki baytı hesaba katmak zorundadır ve depolama alanı iki katına çıkar; bu da açıkça kaynak tüketir ve İnternet'in hızlı gelişim durumuna uymaz. UTF-8 ile, UNICODE'un değişken uzunluklu karakter kodlamasının bir uygulamasıdır ve UNICODE karakterlerini kodlamak için 1~6 sabit uzunluklu bayt kullanabilir.

UTF-8, ASCII karakterler için tek baytlık depolama kullanır ve tek bir karakter bozulursa, sonraki karakterleri etkilemez; bu nedenle UTF-8, geleneksel web için idealdir ve günümüzde en yaygın kullanılan kodlamalardan biridir.

Çin'i temsil etmek istiyorsanız, UTF-8 kodlama verimliliği GBK'dan daha yüksek ve UTF-16'dan daha küçüktür, bu yüzden GBK dışında en ideal kodlama yöntemidir.




Önceki:Linux altında aşırı bellek güçlendirme/önbellek kullanımı
Önümüzdeki:"project.assets.json" varlık dosyası bulunamıyor. NuGet paket geri yüklemesini çalıştır...
Yayınlandı 30.12.2022 14:43:17 |
Anladım, utf-8 ile
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com