Autor Zpráva
BuZZ
Profil
Takže k věci hledal jsem to na jakpsatweb.cz, ale nic co bych chtěl jsem tam asi nenašel nebo jsem to nepochopil proto píši sem.

Mám web a píši ho v PSPad nastavil jsem formát jazyku UTF-8, ale na webu (www.sk9.cz) nefunguje prostě se to nedá přečíst s háčky nevíte čím to je? Či co dělám špatně?
imploder
Profil
BuZZ
Tohle
<meta http-equiv="content-type" content="text/html; charset=windows-1250">

říká, že se soubor má zobrazit jako kdyby byl v kódování ve windows-1250. Pokud ho ale máš uložený v jiném kódování, musíš tam napsat hlavičku tomu odpovídající, aby se správně zobrazil. Pro UTF-8 tedy
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Nox
Profil
Takže k věci hledal jsem to na jakpsatweb.cz, ale nic co bych chtěl jsem tam asi nenašel nebo jsem to nepochopil proto píši sem.
Určitě to tu je

Z tvého kódu:
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
...takže to nebere jako utf8...jak to opravit už si určitě odvodíš
Mastodont
Profil
BuZZ
No a čemu se divíš, když ve stránce posíláš:
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
blizz_boz
Profil
vsetci sa tu mylite! meta tag content type nema absolutne ziadny vplyv na to v akom kodovani sa stranka zobrazi, informacia o kodovani (a mime type) sa ku klientovi posiela v http hlavicke. a nastavuje sa napr.: v Perle takto:

print "Content-Type: text/html; charset=utf-8\n\n";


alebo v C# takto:

Response.Charset = "utf-8";


alebo v PHP:

header('Content-Type:text/html; charset=UTF-8');
panther
Profil
blizz_boz
vsetci sa tu mylite! meta tag content type nema absolutne ziadny vplyv na to v akom kodovani sa stranka zobrazi
ale ale... Jestli se náhodou nemýlíš ty :-)

Než vypustíš z klávesnice takovéhle moudro, nejprve si to zkus.
mpn
Profil
blizz_boz
nevím proč sem pleteš Perl nebo C# a další prog. jazyky když on píše stránku v HTML a tam se nastavuje kódování jazyku samozřejmě meta tagem
BuZZ
jak už zde bylo napsáno změň si kód kódování v hlavičce na stejné jako ukládáš v PSPadu
imploder
Profil
blizz_boz
A proč se asi pak podle tebe ten metatag jmenuje "http-equiv"? To proto, že je to náhrada HTTP headeru v HTML.
blizz_boz
Profil
mpn: ked ma server nastavene ine kodovanie(co vacsinou ma) tak nema zmysel nastavovat kodovanie v metatagu

http://simonka.eu/test-diakritika-utf8.php

v test test-diakritika-utf8.php som nastavil meta tag na Latin 1 a ajtak mi to posiela text v kodovani utf-8, prečo asi?

http://simonka.eu/test-diakritika-iso-8859-1.php

v test-diakritika-iso-8859-1.php som nastavil meta tag na utf-8 a napriek tomu mi to posiela text v latin-1 kódovaní, prečo asi?

lebo spravne kodovanie som som nastavil v http hlavicke a metatag nema absolutne ziadny vplyv v akom kodovani sa stranka zobrazi, informaciu o kodovani v metatagu ma zmysel ukladat jedine pre pripad kedy by uzivatel chcel moje stranky prehliadat v rezime offline ale to uz v dnesnej dobe ked sa neplati za dlzku pripojenia k internetu nema zmysel.
imploder
Profil
blizz_boz
1. co třeba poslat HTML kód, který by se dal považovat za úplný (tj. obsahující html, head, body; nevím, jestli se to takhle vůbec interpretuje)
2. tak máš pravdu v tom, že (i potom, co jsem doplnil ty základní html tagy co bývají v každém dokumentu), že pravá HTTP hlavička přebije tu HTMLkovou. To nic nemění na tom, že sama o sobě (bez nastavení kódování přímo v HTTP) nastavení kódování pomocí meta http-equiv v HTML funguje.

Opravdu o tom nemá smysl diskutovat, všichni to vědí a používají. Aspoň ses dozvěděl něco nového. :)
Mastodont
Profil
blizz_boz
http://simonka.eu/test-diakritika-iso-8859-1.php
v test-diakritika-iso-8859-1.php som nastavil meta tag na utf-8 a napriek tomu mi to posiela text v latin-1 kódovaní, prečo asi?

Opravdu? A zkusil ses na tu stránku podívat, jak vypadá při ručním nastavení kódování na latin-1 v prohlížeči? Vypadá BLBĚ. Zato v UTF-8 je fajn :-))
Chamurappi
Profil
Reaguji na blizz_boze:
vsetci sa tu mylite!
Nemýlí se. Příště si laskavě svá tvrzení ověř, než se do někoho opřeš.

meta tag content type nema absolutne ziadny vplyv
Právě teď jsi na stránce, jejíž kódování vyčetl tvůj prohlížeč pouze z <meta> elementu. Tato diskuse v HTTP hlavičce Content-Type zatím žádné kódování nedeklaruje.

ked ma server nastavene ine kodovanie(co vacsinou ma)
Nemá. Většina stránek (včetně sk9.cz) je posílána s MIME typem „text/html“ bez charsetu. Pak má <meta> značný vliv. Tak to má být a tak to je.


Reaguji na implodera:
co třeba poslat HTML kód, který by se dal považovat za úplný
Ten kód jde považovat za úplný, zmíněné značky nejsou povinné.
blizz_boz
Profil
mastodont: ale to kodovanie je nastavene meta tagom presne naopak, pozri si kod

Chamurappi: no oki mas pravdu, ale aj ja mam pravdu v tom ze o mime type a kodovani obsahu rozhoduje v 1. rade http hlavicka
Mastodont
Profil
blizz_boz
Když tu stránku otevřu, tak hlavička je ISO-8859-1 a vidím paznaky. Po ruční změně kódování na UTF-8 je obsah vidět správně - v souladu s META, které je UTF-8
Joker
Profil
blizz_boz
meta tag content type nema absolutne ziadny vplyv na to v akom kodovani sa stranka zobrazi, informacia o kodovani (a mime type) sa ku klientovi posiela v http hlavicke.
Že by tu někdo četl, nicméně nepochopil, některé výroky z debaty XHTML vs HTML? :-)

Věta: meta tag content type nema absolutne ziadny vplyv na to v akom kodovani sa stranka zobrazi je samozřejmě nesmysl. Stejně jako výrok: ked ma server nastavene ine kodovanie(co vacsinou ma).

imploder
To na to nemá vliv v tom jeho příkladu to skutečně nefunguje.

Ve skutečnosti je to totiž takhle:
- Prohlížeč použije kódování definované protokolem, tedy HTTP hlavičkou, pokud je nějaké definované.
- Nicméně ještě jsem neviděl webserver, který by sám od sebe definoval stránce nějaké kódování. Tzn. tu hlavičku musí poslat sám programátor. Pokud programátor sám napíše do HTTP hlavičky nějaké kódování a dokument udělá v jiném, je to už jeho blbost.
- Obvykle (minimálně u začátečníků) ale HTTP hlavičkou žádné kódování definované není. V takovém případě prohlížeč použije kódování podle HTML ekvivalentu hlavičky content-type, tj. metaznačky content-type.
- Pokud nenajde ani metaznačku, použije nějaké výchozí definované kódování.
Chamurappi
Profil
Reaguji na blizz_boz:
aj ja mam pravdu
V tom, že HTTP hlavička má přednost před <meta>, máš pravdu, ale je to v tomto případě zbytečná pravda. Web sk9.cz deklaruje kódování jen v <meta> a špatně. Bude-li ho deklarovat jen v <meta> a správně, jak poradili imploder, Nox i Mastodont, problém zmizí.

To, že má HTTP hlavička prioritu, ještě neznamená, že je lepší ji používat místo <meta>.
imploder
Profil
Joker
jj, přesně takhle jak's to popsal v těch bodech. Ale nejsem si jistý, co se stane, když jsou ty dvě kódování v konfliktu. Zkusil jsem si tu jeho stránku upravit v Opeře a nastavit v meta http-equiv jiné kódování a nijak ji to nerozhodilo. Takže asi uvedení pravé HTTP hlavičky http-equiv přebije.
blizz_boz
Profil
Chamurappi
To, že má HTTP hlavička prioritu, ještě neznamená, že je lepší ji používat místo <meta>.

je to lepsie, lebo u niektorych hlavne zahranicnych hostingov som mal s tymto problem, pokial som nezacal posielat informaciu o kodovani v http hlavicke, stranka sa mi zobrazovala v nespravnom kodovani, aj ked meta tag som mal nastaveny na spravne kodovanie. Takto mam vzdy istotu ze sa stranka zobrazi spravne.
Joker
Profil
imploder
Sekvence je: HTTP hlavička, HTML ekvivalent hlavičky, výchozí kódování. Platí první definované.
Chamurappi
Profil
Reaguji na implodera:
Takže asi uvedení pravé HTTP hlavičky http-equiv přebije.
Ano. Můj validátor hlásí konflikt jako chybu.


Reaguji na blizz_boze:
je to lepsie
Lepší je používat obojí.

som mal s tymto problem, pokial som nezacal posielat informaciu o kodovani v http hlavicke
Tak asi měly nastavené, že se má v hlavičce posílat jiné, pokud žádné neurčíš. Nebývá to obvyklé nastavení.

Takto mam vzdy istotu ze sa stranka zobrazi spravne.
Pokud ji přežvýká hloupější proxy, nebo zaarchivuje hloupější archiv, nebo načte při špatné konstelaci planet starší Explorer, tak jistotu nemáš. Spolehlivější je <meta>, nejspolehlivější je kombinace obou. (A úplně nejvíc nejspolehlivější jsou znakové entity.)


Reaguji na Jokera:
Někam před konec té sekvence ještě patří detekce Unicodu z BOMu. Nemám to moc prověřené, ale myslím si, že samotný UTF-8 BOM dokáže spolehlivě (minimálně některé) prohlížeče přesvědčit, aby nepoužily své výchozí kódování.
BuZZ
Profil
Děkuji moc opravdu to bylo v te hlavičce už jsem to opravil :) moc diiik

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: