A dokumentum bemutatása html formátumban

Ez a fejezet bemutatja, hogyan jelenik meg a HTML dokumentumok a számítógépen és az interneten.

A dokumentum karakterkészletének szakasza absztrakt szimbólumok kérdésére utal. amely HTML formátumban része lehet a dokumentumnak. Ezek a szimbólumok közé tartozik az "A" latin betű, az "I" cirill "betű", a kínai "víz" karakter stb.

Mivel az emberi nyelvek nagyszámú szimbólummal rendelkeznek és sokféle módon mutatják be őket, ügyelni kell arra, hogy ezek a dokumentumok a felhasználók világszerte megérthetők legyenek.

A hálózatok interoperabilitásának lehetővé tétele érdekében az SGML minden alkalmazáshoz (beleértve a HTML-t) is meg kell adnia a dokumentum karakterkészletét. A dokumentum a következőket tartalmazza:
  • Repertoárt. Egy sor absztrakt szimbólum,. mint például az "A" latin betű, az "I" cirill betű, a kínai "víz" karakter stb.
  • Kódok. A repertoár szimbólumaira vonatkozó egész számú referenciák halmaza.

Minden egyes SGML dokumentum (beleértve az egyes HTML dokumentumokat is) a repertoár karaktereinek sorozata. A számítógépes rendszerek minden egyes szimbólumot kóddal azonosítanak; Például az ASCII karakterkészletben a 65, 66 és 67 kódok az "A", "B" és "C" karaktereket jelentik.

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 meghatározza a több ezer karakter világszerte használt repertoárt.

Az [ISO10646] -ben definiált karakterkészlet a Unicode 2.0 ([UNICODE]) karaktersúly-egyenérték. Mindkét szabvány időről-időre frissül, frissítve új szimbólumokkal, és a változásokat a megfelelő webszervereken meg kell tanulni. Ebben a leírásban az ISO / IEC-10646 vagy az Unicode ugyanazokat a karakterkészleteket jelenti. A HTML-specifikációban azonban a Unicode is említésre kerül más problémák, például a kétirányú algoritmus megvitatásakor.

A dokumentum karakterkészlet azonban nem elegendő ahhoz, hogy a felhasználói ügyintézők megfelelően értelmezhessék a HTML dokumentumokat egy tipikus cserélődésben - egy fájl bájtsorozataként vagy egy hálózati átvitel során kódolva. A felhasználói ügynököknek ismerniük kell a karakterkódolásokat is. amelyeket a dokumentumszimbólumok áramának átalakítására bájtokká alakítottak.

A specifikációban szereplő karakterkódolások más megnevezéseket tartalmaznak más specifikációkban (ami zavart okozhat). Azonban ez a koncepció az interneten ugyanazt jelenti. 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 "charset" paraméter azonosítja a karakterkódolást, amely a byte sorozatot egy karaktersorozatba konvertálja. Ez a transzformáció természetesen illeszkedik a webes tevékenység sémájába: a szerverek HTML-dokumentumokat küldenek a felhasználói ügynököknek egy byte stream formájában; A felhasználói ügyfelek a karakterek sorozataként értelmezik őket. Az átalakulás módszerei az egyszerű egy-egy illesztéstől az összetett sémákig vagy kapcsolási algoritmusokig terjedhetnek.

Egy egyszerű egybájtos karakterkódolási technika nem elegendő az olyan széles karakterű repertoárú szövegsorokhoz, mint az [ISO10646]. A teljes karakterkészlet (például UCS-4) kódolásán kívül van még néhány részkódolás is [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, hogy melyik karakterkódolást kell a felhasználói ügynöknek támogatni.

A megfelelő felhasználói ügyfeleknek helyesen kell megjeleníteniük a Unicode-ban minden olyan karaktert, amelyet bármilyen felismerni képes kódolásban fel lehet ismerni.

Megjegyzések bizonyos kódolásokról

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 szakasz és [UNICODE]. C3 pozíció, 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 jelölt ki egy szimbólumot. Í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álja az UTF-1 átalakítási formátumot [ISO10646] (regisztrált IANA ISO-10646-UTF-1 formátumban). Az ISO 8859-8 és a kétirányú algoritmusról a kétirányúsági és karakterkódolási szakaszban olvashat.

Hogyan határozza meg a kiszolgáló, melyik karakterkódolást használják a dokumentumban? Egyes kiszolgálók ellenőrzik a dokumentum első néhány bájtját, vagy ellenőrzik az ismert fájlok és kódolások adatbázisát. Számos modern webszerver adminisztrátornak köszönhetően nagyobb mértékben szabályozhatja a karakterkészlet konfigurációját, mint a régebbi szerverek. A webkiszolgálók adminisztrátorainak - ha lehetséges - a következő mechanizmusokat kell használniuk a "charset" paraméter elküldéséhez, de ügyelniük kell arra, hogy ne állítsák be a dokumentumokhoz tartozó "charset" paraméter hibás értékét.

Hogyan ismeri fel a felhasználói ügynök a karakterkódolást? Ezt az információt a szerver biztosítja. 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], 3.7.1. Szakasz) az ISO-8859-1 szabványnak az alapértelmezett karakterkódolásnak minősül, ha hiányzik a "Content-Type" fejléc mezőben a "charset" paraméter. A gyakorlatban ez az ajánlás haszontalan, mivel egyes kiszolgálók nem engedélyezik a "charset" paraméter küldését, és egyesek nem konfigurálhatók a paraméter elküldésére. Ezért a felhasználói ügynökök nem vállalhatnak semmilyen értéket a "charset" paraméterhez.

Szerverkorlátozások vagy -konfiguráció megadásához a HTML dokumentumok tartalmazhatnak pontos információkat a dokumentum karakterkódolásáról; Az ilyen információknak a felhasználói ügyfelek számára történő rendelkezésre bocsátásához META elemet lehet használni.

Ezen prioritási listán kívül a felhasználói ügynök is használhat heurisztikus beállításokat és felhasználói beállításokat. Például sok felhasználói ügynök heurisztikusan használja a japán nyelvhez használt különböző kódolások felismerését. A felhasználói ügynökök általában egy felhasználó által definiált helyi alapértelmezett kódolást használnak, amelyet akkor használnak, ha nincs kódolási utasítás.

Megjegyzés. Ha egyes alkalmazásokban olyan karaktereket kell használni, amelyek nem szerepelnek a kódolásban [ISO10646]. ezeket a szimbólumokat személyes zónához kell rendelni annak elkerülése érdekében, hogy ütközésbe lépjen a szabvány e vagy jövőbeli verzióival. Ez azonban nem ajánlott hordozhatósági okokból.

A HTML karakterekre történő utalások kétféleképpen vehetők igénybe:

  • Numerikus karakter hivatkozások (tizedes vagy hexadecimális).
  • Hivatkozások a szimbólumok kombinációira.

Megjegyzés. A HTML másféle módon jeleníti meg a karaktereket, különösen a beágyazott képeket.

Megjegyzés. Az SGML-ben bizonyos esetekben nem használhatod a végleges karaktert ";" a szimbólumok megjelölése után (például a sortörés karakterben vagy közvetlenül a címke előtt). Más körülmények között nem lehet törölni (például egy szó közepén). Javasoljuk a ";" mindig a felhasználói ügynökök problémáinak elkerülése érdekében, amelyekre ez a szimbólum szükséges.

5.3.1 Numerikus karakter hivatkozások

A numerikus karakteres hivatkozások jelzik a karakterkódot a dokumentum karakterkészletében. A szimbólumok számszerű hivatkozása kétféleképpen is megtehető:
  • A "#D;" szintaxis, ahol D decimális szám, a Unicode karaktert jelöli a decimális számmal.
  • A szintaxis "#xH;" vagy "#XH;", ahol H egy hexadecimális szám, egy hexadecimális H számmal rendelkező Unicode karakterre mutat. A hexadecimális numerikus hivatkozások a kis- és nagybetűkre érzékenyek.

Íme néhány példa a numerikus karakter hivatkozásokra:

  • # 229; (decimális) az "a" betűt jelenti, amelynek felső felülete (például norvég).
  • # xE5; (hexadecimális) ugyanazt a karaktert jelenti.
  • # Xe5; (hexadecimális) ugyanazt a karaktert jelenti.
  • # 1048; (tizedes) az "I" cirill "nagybetű" betű.
  • # x6C34; (hexadecimális) a kínai "víz" karakter.

Megjegyzés. Bár a hexadecimális ábrázolás nincs meghatározva az [ISO8879] -ben. Az új verzió várható a [WEBSGML] -ben leírtak szerint. Ez az egyezmény különösen hasznos, mivel a karakterstandardok általában hexadecimális jelöléseket használnak.

5.3.2 Szimbólum hivatkozási kombinációk

A HTML 4.0 nem definiál egy karakter entitás-referenciát minden karakterhez. Például a cirill "I" betű esetében nincs karakter entitás-referencia. Lásd a HTML 4.0-ban definiált karakterekre vonatkozó hivatkozások teljes listáját.

A karakter hivatkozások kombinációi kis- és nagybetűkre érzékenyek. Például, Å egy másik karaktert (A-t nagybetűs kört jelöl), és nem å (a kisbetűvel).

Négy kapcsolatot kell kifejezetten megemlíteni, mivel gyakran használják speciális karakterek megjelölésére:
  • "Lt;" jele <.
  • "Gt"; a> jel>.
  • "-" jelzi a karaktert .
  • "jelet jelent."

Előfordulhat, hogy a felhasználói ügynök nem tudja megjeleníteni a dokumentum összes karakterét, például mivel nincs megfelelő betűtípus, vagy ha a karakter olyan értéket tartalmaz, amelyet a felhasználói ügynök belső kódolásában nem lehet kifejezni stb.

Kapcsolódó cikkek