Autor | Zpráva | ||
---|---|---|---|
flc Profil * |
#1 · Zasláno: 19. 12. 2013, 18:04:43
Dobrý den,
chci se zeptat, jakožto začátečník, jaké základní nastavení pro kódování dokumentu provádíte, aby všechna komunikace mezi různými programovacími jazyky a příkazy fungovala správně? Příklad, jak to dělám já a prosím o opravu, pokud je něco špatně. Chci se spolehnout, že na všech zařízeních a v různých prohlížečích s různými nastaveními uživatele bude fungovat vykreslení textu tak, jak má, takže pro to udělám následující: - používám Notepad++, nejprve v záložce formát zvolím "změnit kódování na UTF-8"; - protože nejčastěji používám <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> , resp. <!DOCTYPE html> , v hlavičce pak zvolím správný atribut pro meta tag, takže buď <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> , resp. <meta charset="UTF-8" />
Mám to správně, když předpokládám spolupráci HTML s JS a PHP, příp. i MySQL, nebo to není tak jednoduché? Děkuji za odpovědi |
||
Trejpa Profil |
#2 · Zasláno: 19. 12. 2013, 18:47:42
flc:
„pokud je něco špatně“ Pokud ti to funguje, tak to děláš dobře. Na doctype záleží jen vykreslovací režim prohlížeče, kódování znaků to neovlivní. Zápisy meta značky na kódování jsou rovnocenné a funkční, zbytečné lomítko na konci značky umí současné HTML prohlížeče ignorovat. Kromě meta značek může kódování ovlivnit BOM, serverová hlavička a v případě pravého X(HT)ML ještě výchozí kódování dokumentu a XML prolog. „na všech zařízeních a v různých prohlížečích s různými nastaveními“ Zobrazení znaku nezáleží jen na použitém kódování, ale také na podpoře národní abecedy ve zvoleném písmu a jeho přítomnosti v daném zařízení. „Mám to správně, když předpokládám spolupráci HTML s JS a PHP, příp. i MySQL“ Pro jednoduchost stačí používat jen jedno libovolné, ale všude stejné, kódování, které pokryje tvé potřeby. |
||
Kajman Profil |
#3 · Zasláno: 19. 12. 2013, 18:49:59
Důležité jsou i http hlavičky serveru. Po připojení k mysql jí dejte vždy vědět, že pracujete s daty v utf8. Viz. Některé časteji řešené dotazy pro MySQL - FAQ » MySQL a čeština
|
||
flc Profil * |
#4 · Zasláno: 19. 12. 2013, 19:30:08 · Upravil/a: flc
Trejpa:
"Pokud ti to funguje, tak to děláš dobře." Jj, funguje mně to, jen asi nevím, jestli záleží na tom, jestli má uživatel v prohlížeči nastavené třeba windows-1250, pokud se nemýlím, tak je to na některých prohlížečích default možnost, ale to by asi nevadilo, protože UTF-8 je něco jako souhrn všech díky posloupnosti bajtů a širšímu rozsahu?, Nevím, chybí mně prostě v tomto nějaká znalost teorie z praxe, trochu to zobecnit a zjistit, kde jsou hlavní chytáky. "Kromě meta značek může kódování ovlivnit BOM" Jakým způsobem ji ovlivní? Našel jsem si toto, nevím co je to endianness, a tím jsem přišel o celou pointu, ale pochopil jsem, že je BOM hlavička asi zbytečná v jakém případě? - "Normally, the BOM is used to signal the endianness of the encoding, but since endianness is irrelevant to UTF-8, the BOM is unnecessary." [i]"ale také na podpoře národní abecedy ve zvoleném písmu"[i] Aby byl font tzv. TrueType, což bude znamenat, že tam najdu asi všechny znaky, je to tak? b]Kajman[/b]: Ano, díky, k mysql_query už jsem se zrovna včera dostal nějakou zvláštní oklikou přes .htaccess a chápu, že při různých knihovnách, nebo jazycích tam asi bude rozdílné nastavení "teorie z praxe z první ruky" .] A ještě jeden takový menší dotaz. Je nějaký důvod, proč bych neměl používat google.com/fonts? |
||
Trejpa Profil |
#5 · Zasláno: 19. 12. 2013, 20:08:58
flc:
Nějak se do toho zamotáváš. „jestli záleží na tom, jestli má uživatel v prohlížeči nastavené třeba windows-1250“ Výchozí chování prohlížečů je takové, že se nejdříve podívají do hlavičky souboru a do hlavičky stránky, zda neobsahuje určené kódování. Potom se snaží kódování uhádnout podle použitých znaků. A teprve nakonec použije nějaké své výchozí. Uživatel to poté může změnit, třeba když se prohlížeč netrefí. „Jakým způsobem ji ovlivní?“ BOM jsou nepovinné identifikační Byty na začátku souboru s kódováním UTF (8, 16BE, 16LE). Určují druh kódování UTF a případně pořadí bitů. Když kódování neuvedeš, některé prohlížeče v rámci hledání kódování podle nich mohou kódování nastavit na UTF. „Aby byl font tzv. TrueType“ To je typ vektorového písma. Nemusí obsahovat žádný běžný znak, klidně jen samé obrázky. Univerzální písmo by mělo obsahovat znaky z kódové tabulky Unicode. |
||
flc Profil * |
#6 · Zasláno: 19. 12. 2013, 20:22:19 · Upravil/a: flc
Trejpa:
Děkuji za vysvětlení, moc si mně pomohl, pokud bych chtěl na stránce používat čiště jen české znaky a vše, co k češtině patří, pomocí BOM bych tedy zvolil určitou tabulku s kódováním? A nebo, pokud bych chtěl české a slovenské znaky tak pomocí BOM identifikátorů zvolit příslušné tabulky? Je lepší kódování neuvádět a spoléhat na prohlížeč? Asi ne, že. Díky za trpělivost |
||
margin Profil * |
#7 · Zasláno: 19. 12. 2013, 20:41:03
Jako začátečníkovi bych ti doporučil:
- nepoužívat BOM - deklarovat ḱódování meta značkou, nespoléhat na prohlížeč Zkušení, kteří vědí, kde se v editoru zapíná/vypíná ukládání BOMu a umí posílat kódování HTTP hlavičkou, ať si dělají co chtějí, podle vlastního uvážení. Ale v naprosté většině případů nepoužívají BOM a deklarují kódování meta značkou. |
||
flc Profil * |
#8 · Zasláno: 19. 12. 2013, 20:55:58
margin:
Přímá odpověď, díky :) Mám opravdu poslední dotaz, jestli používáním google.com/fonts nezatěžuju moc prohlížení pro uživatele, když třeba si vyberu jedno patkové a jedno bezpatkové písmo, latin-extended, regular i bold, je to rázem na červené. |
||
Trejpa Profil |
#9 · Zasláno: 19. 12. 2013, 21:02:40
flc:
Ptal ses, jak může BOM ovlivnit kódování, ne zda se tak i běžně používá. • Nastav si kódování v editoru (třeba na UTF-8), • vypni přidávání BOM, pokud ho editor přidává, • prohlížeče o použitém kódování informuj pomocí meta značky (třeba <meta charset=utf-8> ).
„nezatěžuju moc prohlížení pro uživatele“ Další věc, co se stahuje navíc. Každý požadavek na další soubor načítání zpomaluje. Pokud je externích souborů málo, jsou malé a je rychlá odezva, tak to vadit nemusí. Pokud se na soubory čeká dlouho, je to překážka pro plynulé prohlížení. Míru únosnosti testuj na pomalém připojené. „když třeba si vyberu jedno patkové a jedno bezpatkové písmo, latin-extended, regular i bold, je to rázem na červené.“ Na to bude vhodné sem vložit odkaz. |
||
flc Profil * |
#10 · Zasláno: 19. 12. 2013, 21:12:26 · Upravil/a: flc
To je právě to, pokud je externích souborů málo, nebo není, to nevím. Většinou mám na stránce připojený v hlavičce css soubor, max. dva a mezi
</body> a </html> jQuery knihovnu a jeden či dva skripty, no a co se týče CSS sprites, tak tam ještě to neumím použít vždycky :/
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700|Simonetta:400,900&subset=latin-ext' rel='stylesheet' type='text/css'> /> Takové zakončení nepárového tagu je určitě zbytečné? jo a samozřejmě taky občas php součásti stránek Ale dobré, každopádně děkuju za mnoho cenných rad, já už si s tím nějako snad poradím, nebudu zdržovat. Díky mockrát :) |
||
Trejpa Profil |
#11 · Zasláno: 19. 12. 2013, 21:55:23
flc:
/> Takové zakončení nepárového tagu je určitě zbytečné? Na webu je to určeno pro jazyk XHTML, který se tímto snažil být i XML souborem. V jazyce XML jsou značky jen párové, všechny se musí uzavírat. Lomítko slouží na konci značky místo druhé zavírací ( <br></br> = <br /> ). Naštěstí se pravé XHTML neuchytlo a téměř všichni používají HTML (bez ohledu na to, co píší v doctype). Lomítko původně mělo sice jiný význam (teoreticky), ale všechny prohlížeče ho ignorují jako neznámý atribut. Lomítko je zbytečné, ale ničemu nevadí.
V jazyce HTML se všechny značky, párové počáteční, koncové i nepárové, uzavírají jen znakem > .
|
||
flc Profil * |
#12 · Zasláno: 20. 12. 2013, 02:21:26
Trejpa:
Díky moc, už si to budu pamatovat. Pokud jde o XHTML v DOCTYPE, <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> , tohle by mělo být správně.
|
||
Trejpa Profil |
#13 · Zasláno: 20. 12. 2013, 12:01:27
flc:
Jak jsem psal, prohlížeče jen (zne)užívají doctype na určení vykreslovacího režimu, jinak je jeho obsah nezajímá. Má sloužit jen validátorům a pro ně se stránky nepíší. Máš to správně, ale klidně stačí i krátké <!DOCTYPE HTML> .
|
||
Časová prodleva: 10 let
|
0