2011-07-22 9 views
5

Rozważmy następujący kod HTML:Dlaczego przeglądarki renderują   jako zwykłą spację?

<p>Space&nbsp;Test</p> 

Gdy HTML jest używany na stronie internetowej, a strona renderowane przez przeglądarkę, postać faktycznie świadczonych przez przeglądarkę pomiędzy „przestrzeń” i „Test” jest zwykłym spacja (U + 0020), a nie nieprzestrzegający znaku spacji (U + 00A0).

(To może być obserwowane przez, na przykład, poprzez rozszerzenie Firefoksa Character Identifier).

Próbowałem to w Firefoksie 5, Internet Explorer 8 i Chrome 12; wszystkie miały takie samo zachowanie wypisywania U + 0020 zamiast U + 00A0 na renderowanej stronie internetowej, mimo że dokument źródłowy zawierał raczej niż zwykły znak spacji.

Dlaczego przeglądarki renderują w ten sposób zwykły znak spacji zamiast znaku spacji?

+0

U + 00A0 ma link rozkładu do U + 0020. http://www.charbase.com/00a0-unicode-no-break-space Ale to tak naprawdę nie odpowiada na twoje pytanie. –

+0

Brzmi jak błąd przeglądarki. Czy zostało to zgłoszone? –

+0

@ColonelPanic Nie uważałem tego za błąd, ponieważ wszystkie główne przeglądarki wydają się implementować zachowanie w ten sam sposób. –

Odpowiedz

4

Jest to relikt czasów przed kodowaniem Unicode, gdy znak NBSP nie istniał w standardowym zestawie znaków. HTML zdefiniował sekwencję specjalną &nbsp; jako po prostu spację, która nie powinna powodować zawijania słów.

+0

Interesujące! Czy masz link do miejsca, o którym jest mowa w specyfikacji? – gilly3

+0

Tak, to zostało faktycznie zdefiniowane w ISO8879, które zostało opublikowane w 1986 roku jako część specyfikacji SGML, na której oparto HTML. Musisz zapłacić za kopię [faktycznego standardu] (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=16388), ale tutaj jest [przydatne łącze] (http: //www.cs.vassar.edu/CES/sgml/ISOnum). Spełnia to [HTML 4 Spec] (http://www.w3.org/TR/html4/sgml/entities.html). –

+2

Znalazłem to ze [specyfikacji HTML 3] (http://www.w3.org/MarkUp/html3/specialchars.html), przeszukując stronę w3.org. – gilly3

Powiązane problemy