UTF-8 ve HTML kuruluşlar arasındaki fark nedir?

5 Cevap php

UTF-8 ve HTML kuruluşlar arasındaki fark nedir?

5 Cevap

Sadece değil akışı 'ortasında' düşerse kayıpsız ve kendi kendine senkronize geri (kayıpsız) doğal sayılar olsun böylece bir Bytestream doğal sayıların bir listesini harita ve bir aracı olarak UTF-8 daha görmek büyük bir sorun. (Self-senkronize)

Her doğal umber sadece bir 'karakter' temsil etmek olur.

HTML kişiler gibi bir şekilde bu aynı doğal sayıları temsil etmek için bir yoldur: , unicode olarak, doğal sayı 127 yanlısıdır DEL karakter olmak.

UTF-8 bu ByteStream bulunuyor: 0111 1111

Eğer birden fazla sekizli olur 127 yukarıda gitmek kez, bu nedenle, 128 olur: 1000 0001 1111 1111.

Arka arkaya iki DEL karakter haline 0111 1111 0111 1111. UTF-8 bir bayt akışı örneğin 4 oktetler gibi skaler 1 ve 4 farklı arasındaki geri eşlenebildiğinden olsa bile, bu Bytestream gelen 'unicode skalar değerler' orijinal listesini almak için her zaman mümkün olduğunu, böyle bir şekilde tasarlanmıştır değerleri. Onlar onu aramak gibi UTF-8 'Böylelikle değişken uzunluğu' olduğunu.

UTF-8 bayt düzeyinde kodlama için bir kodlama şeması.

HTML entities standardında birçok karakter (genellikle ASCII) karakter boşluk ifade etmek için bir yol sağlar. UTF-8 mevcut değildir zaman da onları more human readable okunabilir yapar.

HTML Kuruluşların temel amacı bugün HTML metni olarak işler gibi görünüyor emin metin yapmaktır. Örneğin, daha az ya da operatörleri (< veya >) belirli bir sırayla (yani ) konulduğunda niyet için iken yanlışlıkla HTML olarak işleyebilir Büyüktür Onları metin olarak işlemek için.

Bir ton. HTML kişiler öncelikle (çıkış vs ekrana karıştırmak değil) HTML görüntülenebilir böylece HTML biçimlendirme kaçmak için orada tasarlanmıştır. > Bir etiketi kapatır iken Örneğin, >, bir> çıktılar. HTML varlıkları ile tam Unicode üretebilir iken, çok verimsiz ve düpedüz çirkin.

UTF-8 kod sayfaları anahtarlama ve kod sayfalarını karıştırmak için çalışırken başvurmadan klasik ABD ASCII kodu sayfanın dışında karakterleri görüntülemek için Unicode nasıl kapsar, bir multi-byte kodlama. Tek bir kod noktası (bu gerçekten doğru olmasa da, bir karakter olarak bunu düşünüyorum) 6 veri bayt kadar yapılabilir. Bu tür aksanlı karakterler, Doğu Asya karakterleri, hem de diğer karakter setleri arasında Kelt ağaç yazı (Ogham) gibi temel dilli düzlemine (BMP), içinde ve dışında herhangi bir karakteri temsil içindir.

UTF-8 olduğunu HTML etiketleri biçimlendirme doğrudan eklenir değildir bu yüzden htmlentities, güvenli kullanıcı giriş sayfasında görüntülemek için yapmak için bir işlevdir, bir kodlama. manual bakın.

"A" bunu yerine 1 ve 0 bir dizi var, aslında bilgisayarda "A" olarak depolanmaz burada ekranda görebilirsiniz. A character set ya da encoding şekilde karakterleri kodlamak için bir yöntem belirtir. ASCII character set sadece neredeyse sadece İngilizce dil karakterle sınırlıdır kodlamak karakter bir avuç içerir. Ama tarihsel nedenlerle ve zamanın teknik sınırlamalar için, bu internet karakter kümesi (çok erken) olarak kullanılır.

UTF-8 ve HTML kişiler hem ASCII parçası olmayan karakterleri kodlamak için kullanılabilir. HTML kişiler özel karakter dizilerine özel bir anlam vererek bunu başarmak. Bunu kullanarak yalnızca ASCII karakterleri kullanarak ASCII kapsamında değildir karakterleri kodlamak. UTF-8 (Unicode) sadece daha fazla karakter içerecek şekilde ayarlanmış karakter uzatarak aynı işi yapar. HTML kişiler genellikle bir tarayıcı olduğu, bunları çözmek için rahatsız bir ortamda sadece "geçerli" vardır. UTF-8 karakter karakter setini destekleyen herhangi bir uygulama evrenseldir.

ASCII kapsamında sadece karakterleri içeren metin:

Price: $20 (UTF-8)
Price: $20 (ASCII with HTML entities)

ASCII tarafından kapsanmayan Avrupa karakterleri içeren metin:

Beträge: 20€ (UTF-8)
Beträge: 20€ (ASCII with HTML entities)

Asya karakterleri, kesinlikle ASCII kapsamında değildir içeren metni:

値段:二千円 (UTF-8)
値段:二千円 (ASCII with HTML entities)

UTF-8 ile sorun istemci UTF-8 anlamak gerekiyor. Tüm modern bilgisayarlar ve tarayıcılar UTF-8 anlamakta sorunum yok gibi son on yıl ya da öylesine için bu olsa hiçbir endişe olmuştur. UTF-8 (Unicode) (küçük istisnalar hariç) bu gezegende bugün kullanılan hemen hemen tüm karakterleri kodlamak. "Olduğu gibi" onu kullanarak metin ile çalışabilirsiniz. Bu kesinlikle içeri metni kaydetmek için tercih edilen kodlama olmalı

The problem with HTML entities is that normal characters take on a special meaning. When writing ä, it takes on the special meaning of "ä". If you actually intend to write "ä", you need to double encode the sequence as ä.
HTML entities are also notoriously unreadable. You do not want to use them to encode "special" characters in normal text. In this capacity they're a kludge bolted onto an inadequate character set. Use Unicode instead.

Kullanılan karakter kümesi bağımsız HTML varlıkları önemli kullanımı metinden HTML biçimlendirme ayırmaktır. HTML de özel karakter dizilerinden özel bir anlam verir. <b>text</b> karakter normal bir dizidir, ancak HTML ayrıştırıcıların için özel bir anlamı vardır. Sadece " metin " yazmak istediğiniz varsa, &lt;b&gt;text&lt;/b&gt; olarak kodlamak gerekir, bu yüzden HTML ayrıştırıcı HTML etiketleri için hata değil.