conBLOG

17. 7. 2003 čtvrtek

Chybné entity a přemoudřelé prohlížeče

Minulý týden jsem zaznamenal problémy s RSS kanálem na conBLOGu. RSS čtečky přestaly načítat některé spoty. Následkem toho mj. klesla návštěvnost. Proto jsem začal pátrat. Chybu jsem udělal samozřejmě já, ale prohlížeče mi rozhodně v jejím řešení nepomohly. Jsou totiž až moc chytré.

Na vině je příliš inteligentní zobrazování chybně zapsaných znakových entit v prohlížečích. Znakové entity slouží třeba k zápisu speciálních znaků (např. & < > ©). Znaková entita se zapisuje ve formátu &KOD;. Důležitý je onen středník na konci. Oznamuje konec kódové sekvence (může se jednat např o anglický akronym znaku nebo o numerický kód znaku). Prohlížeče napravují chyby tvůrců stránek a středník si domyslí.

Domyšlený středník není problém pro prohlížeč, ale je to problém pro RSS čtečku, která v lepším případě ignoruje položky v RSS kanále. Mnohé RSS kanály jsou generovány automaticky z textu dokumentu nebo jsou při ručním vytváření RSS kopírovány autorem. Při validování spotů používám pochopitelně používám náhled v prohlížeči, který zobrazí i chybně zapsané entity.

Moje chyba byla způsobena chybějícím středníkem v entitě pro nedělitelnou mezeru (&nbsp;). Např. zápis v&nbsplese prohlížeč interpretuje jako v lese. Pro RSS čtečku může být přítomnost chybně zadané entity fatální.

Testoval jsem na prohlížečích IE 5.5, IE 6, Opera 6, Mozilla 1.0 a Firebird. Všechny prohlížeče chybně interpretovaly bez povinného koncového středníku zapsané zankové entity - zobrazily je, jako by tam středník byl.

Komentáře

1 Jirka E-mail

18. 7. 2003 pátek, 1.22

Tak to je tento týden už druhá podobná stížnost - viz příspěvek č.5 v diskusi k článku http://www.pixy.cz/blogg/web/2003_07_01_archiv.html#1058180164 ...

2 Adam Hauner E-mail Web

18. 7. 2003 pátek, 8.07

Kdyby moje Mozilla (1.4+) špatně zapsané entity zobrazovala chybně jako mezery, nepsal bych 8. 7. autorovi tohoto blogu pobídnutí k jejich opravě.

3 Vilém Málek E-mail Web

18. 7. 2003 pátek, 15.11

Souhlasím s příspěvkem Adama Haunera. Mně chybu hlásila nejen Mozilla, ale i MSIE, který si navíc stěžoval na chybnou hlavičku. IMHO bude problém (i) v něčem jiném ;-)

4 Jiří Bureš E-mail Web

18. 7. 2003 pátek, 19.09

To Adam a Vilém: Jak jsem napsal, testoval jsem v Mozille 1.0. A taky jsem napsal, že "...Chybu jsem udělal samozřejmě já...".
Zjištění, že některé prohlížeče chybně zadané entity zobrazují "dobře" (tedy špatně) a naproti tomu je RSS čtečky je nezobrazují (což je dobře i špatně), považuji za důležité a proto jsem zvolil samostatný spot.

5 Petr Bříza E-mail

24. 1. 2004 sobota, 20.11

Používáte při ladění FeedValidator? Ten by snad podobnou chybu měl odhalit. Zajímalo by mě jaké XML parsery ty čtečky používají, že takovou chybu akceptují...

6 Jiří Bureš Web

24. 1. 2004 sobota, 21.01

[5] Často nevaliduji, protože výstup RSS je generovaný automaticky systémem b2. Navíc použité kódování neprojde mnoha validátory - ty, které propustí windows-1250 vše zvalidují OK.
Čtečky to právě (správně) neakceptují, ale některé browsery HTML výstup akceptují a pak to v IE nemůžu kontrolovat.

Nový komentář







Odřádkovat odstavce v komentáři (pomocí <br>)

Můžete použít HTML značky. URL začínající http:// se převedou na odkaz (z obou stran musí být mezera).

« starší článek   · • ·   novější článek »

Od roku 2002 conBLOG píše Jiří Bureš, conVERTER

Tip: Doporučuji webhosting Český hosting