Web - kódolás - html konzorcium W3C HTML specifikáció 4
A W3C specifikáció HTML 4.0 - ismerteti a dokumentum HTML formátumban
Ebben a fejezetben azt tárgyaljuk, hogyan HTML dokumentumok képviselteti magát a számítógép és az internet.
Szakasz dokumentum karakterkészlet utal arra a kérdésre, elvont szimbólumok. amely tartalmazza a HTML dokumentum. Néhány ezek a karakterek a latin „A” betű, a cirill betű „I”, a kínai karakter „víz”, stb
Mivel az emberi nyelv hatalmas karakterek száma és a különböző módszerek a teljesítmény, ügyelni kell arra, hogy ezek a dokumentumok is érthető felhasználói programok szerte a világon.
5.1 A dokumentum karakterkészlet
Az együttműködés biztosítása érdekében SGML megköveteli, hogy minden alkalmazás (beleértve a HTML) adja meg a dokumentum karakterkészlet. A dokumentum tartalmazza:- Repertoárt. Állítsa az absztrakt szimbólumok. mint például a latin „A” betű, a cirill betű „I”, a kínai karakter „víz”, stb
- Kódok. Egy sor egész hivatkozások repertoárjának karaktereket.
Minden SGML dokumentum (beleértve az egyes dokumentumok HTML) - karaktersor a repertoárból. Számítógépes rendszerek esetében minden karakter kódjával; például egy sor ASCII kódok karakterek 65, 66 és 67 jelöli karakter „A”, „B” és „C” volt.
ASCII karakterkészlet nem elegendő a globális információs rendszer, mint a Web, így HTML használ egy teljes karakterkészlet úgynevezett Universal Character Set (Universal Character Set - UCS), és meghatározott [ISO10646]. Ez a szabvány határozza meg a repertoárját ezer karakter használják szerte a világon.
Karakterkészlet, meghatározott [ISO10646] - ez a karakter-orientált egyenértékű Unicode 2.0 ([UNICODE]). Mindkét szabványok frissülnek időről időre, frissül az új karakterek, a változásokat kell konzultálni a megfelelő Web szerver. Ebben a leírásban, ISO / IEC 10646-vagy Unicode jelenti ugyanezt a karakterkészlet. Azonban a HTML specifikáció Unicode is hivatkoznak a vita az egyéb kérdéseket, mint például a kétirányú szöveges algoritmust.
Dokumentum karakterkészlet, azonban nem elegendő ahhoz, hogy a felhasználói alkalmazások, hogy helyesen értelmezze HTML dokumentumok egy tipikus csere - kódolva bájtok sorozata egy fájl vagy az átvitel során a hálózaton keresztül. A böngészőknek tudni kell azt is a karakterkódolást. felhasználni, hogy a dokumentum jellegű folyamot egy byte stream.
karakterkódolás a leírásban különböző nevek más előírások (ami okozhat némi zavart). Azonban ez a fogalom az internet jelenti nagyjából ugyanaz. Az azonos nevű - „charset - charset” - használják a protokoll fejlécek, attribútumok és paraméterek utalva a karakterek és ugyanazokat az értékeket használják a [IANA] registry (a teljes listát lásd [karakterkészletek].).
A paraméter „karakterkészlet” azonosít egy karakterkódolás, amely egy módszer a konvertáló bájtok sorozata a karaktersor. Ez az átalakítás természetesen illeszkedik bele a rendszer a Web aktivitás: szerverek küldeni HTML dokumentumok felhasználói alkalmazások, mint a patak byte; felhasználói alkalmazások értelmezni őket, mint a karakterek sorozata. transzformációs módszerek eltérhet egy egyszerű egyenkénti megfelelőség a kifinomult kapcsolási rendszerek vagy algoritmusok.
Egyszerű kódolás technika „egy byte - egy karakter” elégtelen szöveges karakterláncok ilyen széles repertoárját karaktereket [ISO10646]. Szintén kódolások teljes karakterkészletet (például, UCS-4), van néhány más részein a kódolás [ISO10646].
Szerverek és proxy megváltoztathatja a karakterkódolás (az úgynevezett átkódolás) menet közben, hogy végre a felhasználói bekérjenek (lásd. 14.2 [RFC2068]. HTTP kérés fejlécében „Accept-Charset”). Szerverek és képviselet nem kell, hogy szolgálja a dokumentum kódolása, beleértve a teljes dokumentum karakterkészlet.
Széles körben használt webes titkosítás - ISO-8859-1 (más néven "Latin-1" használják a legtöbb nyugat-európai nyelven), az ISO-8859-5 (cirill támogatás), SHIFT_JIS (japán kódolás), EUC-JP (egy másik japán kódolás) és az UTF-8 (ISO 10646 egy variánst kódoló egy másik bájtok száma a különböző karakterek). Nevei karakterkódolásokat kis-és nagybetűk, úgy, hogy például „SHIFT_JIS”, „Shift_JIS” és „Shift_JIS” egyenértékű.
Ez a specifikáció nem határozza meg, milyen karakter kódolást támogatja a felhasználói ügynök.
Megfelelő felhasználói alkalmazásokban kell helyesen megjeleníteni a Unicode összes karakter bármilyen kódolás, fel tudják ismerni.
Megjegyzések a konkrét kódolás
Amikor HTML szöveget továbbítják az UTF-16 (charset = UTF-16), a szöveges adatokat kell továbbítani a hálózati byte sorrendben ( "big-endian" magasabb rendű byte - az első) összhangban [ISO10646]. 6.3 és [UNICODE]. helyzetben C3, 3-1 oldal.
Továbbá, hogy növeli annak valószínűségét, helyes értelmezés, akkor ajánlott továbbítja UTF-16, mindig kezdve a karakter nem törhető szóközök nulla szélességű (a hexadecimális kódot FEFF is nevezett Mark of byte sorrendben (Byte Order Mark - BOM)), amely kezeli byte lesz hex FFFE soha nem rendelt a szimbólum. Így a felhasználói ügynök megkapja a hexadecimális kódot FFFE, mint az első bájt a szöveg lesz tudatában annak, hogy a többi szöveg, a byte kell megfordítani.
Ne használjon UTF-1 [ISO10646] transzformációs méret (IANA regisztrált az ISO10646-UTF-1). További információt az ISO 8859-8 és a kétirányú algoritmus, lásd. Szakasz kétirányúságát és karakterkódolást.
A szerver határozza meg, melyik használt karakterkódolás a dokumentumot? Néhány szerver megvizsgálja az első néhány byte a dokumentum, vagy ellenőrizni egy adatbázis az ismert fájlok és kódolásának. Sok modern Web szerverek segítségével a rendszergazdák több konfigurációmenedzsmentre a karakterkészlet, mint a régi szervereket. Web szerver adminisztrátorok kell használni ezeket a mechanizmusokat, hogy küldjön a paramétert, ha lehetséges „charset”, de meg kell vigyázni, hogy ne állítsa be a „charset” paraméter értékét a hibás dokumentumokat.
Mivel az ágens tudja, melyik karakterkódolást óta használják? Ezt az információt a szerver. A legjobb módja annak, hogy tájékoztassa a böngésző a karakterkódolás a dokumentum - a „charset” paraméter a fejléc mező „Content-Type” HTTP protokoll ([RFC2068] szekciók 3,4 és 14,18.) Például a HTTP fejléc bejelenti a következő, amely a kódolási EUC-JP:
A HTTP protokoll ([RFC2068]. A 3.7.1) úgy véli, ISO-8859-1 alapértelmezett karakterkódolás, ha a "charset" paraméter a fejléc mező "Content-Type" hiányzik. A gyakorlatban ez az ajánlás haszontalan, mert néhány kiszolgáló nem teszi lehetővé, hogy küldje el a paraméter „charset”, és néhány nem lehet beállítani, hogy küldje el ezt az elemet. Ezért a böngészőknek nem vállal semmilyen jelentőséget „charset” paraméter.
Ahhoz, hogy adja meg a kiszolgáló vagy konfigurációs korlátozások a HTML dokumentumok lehetnek explicit információt a karakterkódolást a dokumentum; hogy ezeket az információkat fel lehet használni a felhasználói alkalmazások META elem.
Amellett, hogy ez a lista a prioritások, a böngésző használhatja a heurisztikus és a felhasználói beállításokat a telepítést. Például sok kliens használ heurisztikus különböztetni a kódolást használt japán. A böngészőknek általában egy helyi alapértelmezett felhasználói kódolást használnak, ha nincs jelzés kódolás.
Megjegyzés. Ha egy bizonyos alkalmazás akkor kell használni, hogy a karakter nem szerepel a kódolás [ISO10646]. ezek a jelek kell rendelni egy személyes zóna konfliktusok elkerülésére a jelenlegi vagy jövőbeli változatai a szabvány. Azonban ez nem ajánlott a hordozhatóság támogatása miatt.
Karakter hivatkozások HTML két formában jelenhet meg:- Numerikus karakter hivatkozásokat (decimális vagy hexadecimális).
- Hivatkozásokat szimbólum kombinációk.
Megjegyzés. HTML biztosít más módon bemutatni karakter, különösen a beágyazott képekkel.
Megjegyzés. Az SGML, nem tudja használni a végső karakter bizonyos esetekben „;” után hivatkozási jelek (például, soremelés szimbólum előtt közvetlenül, vagy címke). Más körülmények között nem lehet őket eltávolítani (pl közepén egy szó). Javasoljuk, hogy használja a „;” Mindig problémák elkerülése érdekében a felhasználói alkalmazások, melyek ezt a szimbólumot kötelező.
5.3.1 A numerikus karakter hivatkozások
Numerikus karakter hivatkozások adja meg a karakter kódját a karakterkészlet a dokumentumot. Numerikus karakterhivatkozások is két fajtája van:- Szintaxis „#D;”, ahol D - decimális szám azt jelzi, Unicode karakter decimális szám D.
- Syntax "#xH"; vagy „#XH;”, ahol H - hexadecimális szám azt jelzi, Unicode karakter hexadecimális szám H. hexadecimális numerikus referenciák érzékeny.
Íme néhány példa a numerikus karakter hivatkozások:
- # 229; (Decimális) képviseli az „a” betű, egy kis kört fölötte (használt, például a norvég).
- # XE5; (Hexadecimális) képviseli az azonos jellegű.
- # Xe5; (Hexadecimális) képviseli az azonos jellegű.
- # 1048; (Decimális) képviseli a cirill nagybetű „I”.
- # X6C34; (Hexadecimális) képviseli a kínai karakter „víz”.
Megjegyzés. Bár a hexadecimális nincs megadva [ISO8879]. ez várható az új verzió, amint az [WEBSGML]. Ez a megállapodás különösen hasznos, szimbólumok szabványok általában használni hexadecimális ábrázolás.
5.3.2 kombinációi karakter hivatkozások
HTML 4.0 nem definiál karakter referenciát minden karaktert. Például cirill betű „I” nincs karakter referenciát. Cm. Teljes lista karakter hivatkozások meghatározott HTML 4.0.
Kombinációi jellegű utalások kis- és nagybetűket. Például, Å rámutat arra, hogy egy másik szimbólum (A kör nagybetűs) helyett å (A kör kisbetű).
Négy kapcsolatokat kell említeni speciálisan, mivel gyakran használják ki a különleges karaktereket:- "Lt;" annak a jele, <.
- "Gt"; Ez jelenti a> jel.
- „-” jelentése karakter .
- „” Jelenti a „jelet.
Lehetséges, hogy az ágens nem képes megjeleníteni az összes karakter a dokumentumban, például hiánya miatt a megfelelő szöveget, vagy ha a karakter olyan értékű, nem lehet kifejezni a belső kódolt felhasználói ügynök, stb