Portál AbcLinuxu, 15. prosince 2025 01:40
Toto si myslí "specialista na vyhledávání v češtině" - vyhledávač Morfeo. Zkuste si vyhledat něco ryze českého, tedy nějaké slovo s diakritikou. Budete se divit.
Potřeboval jsem něco vyhledat a jak Google, tak ani Seznam nepodávaly uspokojivé výkony. Proto jsem zkusil použít další vyhledávač, a tím bylo Morfeo - právě ten vyhledávač, který používá portál Centrum. Požadovaný text jsem napsal a odeslal na server. Žádné stránky nebyly nalezeny. To bylo velice podezřelé. Ovšem vzápětí jsem si všiml něčeho co mě pořádně zarazilo.
Celá stránka s výsledky byla nikoli v češtině, nýbrž v "cestine", a z vyhledávaného slova byly nevhodné znaky prachsprostě odstraněny. Říkám si: problém s kódováním. A zkouším jiné nastavení kódování. Výsledky stále stejné. Už mi bylo téměř jasné, že problém bude s hlavičkou User-Agent (Konqueror mu třeba nevoní), proto jsem nastavil MSIE 6 pod XP a odeslal dotaz. A všechno proběhlo tak, jak má.
Aha, tak Konqueror to nezná a proto předpokládá, že umí jen ASCII. Tak schválně, co to udělá, když se mu nastaví MSIE 6, ovšem už ne pod XP. A je to tady: opět bez češtiny. Takže ne Konqueror, nýbrž Linux mu nevoní. Situace se je ale mnohem zajímavější. Ovšem pozor - některé prohlížeče (např. Opera 9, Mozilla 1.7.x nebo Netscape 7.1) jsou brány na milost, kdežto jiné nikoli (Firefox 1.0, Opera 7.53, Mozilla 1.2 apod.), a to přesto, že pro jejich windowsovské kolegy funguje vše správně.
Největší legrace ale teprve přijde. Zkuste schválně v Konqueroru nastavit identifikaci jako libovolný prohlížeč pod Mac OS X nebo Mac PPC. Můžete se pak pokochat čajem místo písmen. Morfeo totiž pošle stránku v macovském kódování (které Konqueror zřejmě nezvládá), aniž by ho o to někdo žádal - v HTTP hlavičce Konqueror označuje jako preferované kódování UTF-8.
Je zajímavé, jakou práci si dali vývojáři Morfea, aby rozebírali hlavičku User-Agent a na jejím základě vymýšleli, jak naložit s obsahem. Současně totiž ignorují další HTTP hlavičky, přinejmenším Accept-Charset. Navíc znakové sada v hlavičce Content-Type v odpovědi většinou chybí (!), kromě onoho macovského kódování (i když v případech, kdy s češtinou naloží správně, znakovou sadu uvádí). Příslušný META tag v HTML pak chybí ve všech případech.
Působí velice komicky, když si tak diletantsky implementovaný vyhledávač říká "specialista na vyhledávání v češtině", a přitom s tou češtinou nakládá tak macešsky. A absolutně nerozumím tomu, proč to není uděláno standardním způsobem (podle Accept-Charset), což by bylo podstatně jednodušší. Portál Centrum samozřejmě toto beze zbytku přebírá, proto se stejného chování dočkáme i tam (možná je rozdíl jen v obrázcích na stránkách).
Tiskni
Sdílej:
http://morfeo.centrum.cz/index.php?q=%E8%F9r%E1k&submit.x=0&submit.y=0&mt=2&tt=2&mts=1&sec=mor
Zkus hádat
Tys to uhod
Jen mě překvapilo, že někdo (firma takového významu; i když i z pohledu českého trhu je to stejně spíš trpaslík) něco dělá složitě a blbě, když to jde jednoduše a dobře.Mě ne :D
Vsechny servery ktere spadaji pod NetCentrum pouzivaji modul mod_czech v Apachi ktery se o toto prekodovavani do ruznych kodovani stara. Vice informaci ohledne mod_czech lze urcite vygooglit.
Chovani toho do jakeho kodovani se stranka prekoduje jde trosku ovlivnit. Napriklad pokud chci stranku ciste v ASCII, staci nacist stranku http://morfeo.cz/asc a stranka bude jen v ascii kodovani. Pokud chci stranku v kodovani UTF8, staci nacist http://morfeo.cz/utf.
Takto lze servery pouzivajici modul mod_czech prohlizene pres "nepodporovany" browser donutit zasilat text s diaktritikou.
mod_czech používal a už tehdy se přednostně orientoval podle Accept-Charset. Navíc se zmršenou konfigurací, protože defaultní konfigurace odjakživa linuxovým prohlížečům posílala ISO 8859-2.
Nebudu sprostý…
Znakovou sadu v Content-type Morfeo předává zcela korektně, váš případ byl velmi pravděpodobně takový, že mod_czech rozhodl, že prohlížeč umí pouze iso-8859-1 a u toho samozřejmě znakovou sadu v Content-type uvádět netřeba (je to default), naopak se kvůli kompatibilitě s prohlížeči používajícími staré verze HTTP úmyslně vynechává.
Co se znakové sady v META týče, myslím si, že že je to spíš na škodu.
Zkrátka bych autorovi doporučil, aby se naučil místo nadávání raději psát bug reporty, případně aspoň přesně popsat svůj problém.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.