Ahoj,

kódování je třeba uvést na dvou místech, aby to správně fungovalo,
a je dobré ho dát ještě na třetím, a to takto:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="windows-1250"%>
<html>
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

To první místo je v direktivě @page v atributu contentType, a určuje, v jakém
kódování bude stránka poslána prohlížeči, tj. HTTP hlavičku.
Pokud není uvedeno, bere se iso-8859-1.

Druhé místo je zase v direktivě @page, ale v atributu pageEncoding, a určuje, v 
jakém
kódování je soubor JSP načten z disku. Musí odpovídat tomu, jak je nastaven 
editor, ve kterém
to píšete. Default je určen nastavením operačního systému, přesněji řečeno 
systémovou property
file.encoding, a na českých Windows to bude windows-1250.

Třetí místo je v tom meta tagu. Pokud je nastaveno první místo (tj. HTTP 
hlavička),
tohle nastavení má smysl jen pokud si uživatel uloží kopii stránky na disk, při 
kterém
se HTTP hlavičky nezachovávají. Pokud HTTP hlavička kodování nespecifikuje,
vezme ho prohlížeč z meta tagu. Specifikace v HTTP hlavičce má přednost před 
specifikací v meta tagu.

No a pokud není kodování nastaveno ani v hlavičce ani v meta tagu, prohlížeč má 
nastaveno
nějaké default kodování, ve Firefoxu je to v menu Úpravy - Předvolby - Obsah - 
Písma a barvy -
Rozšířené - Znaková sada, případně se to dá rychle ručně vynutit v Zobrazení - 
Znaková sada.

Takže stručná opověď je, že je třeba, aby pageEncoding bylo správně nastaveno, 
aby
znaky byly vůbec správně načteny, a pak je třeba nastavit správně HTTP hlavičku
pomocí contentType, aby byly znaky správně překodovány na výstupu a prohlížeč 
věděl jak.
Pak není nutné na straně prohlížeče vůbec nic dělat.

Makub

ivo_m napsal(a):
> Já mám trochu podobný problém. Jednoduchá stránka xx.html:
> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> <head>
>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
>       <title>Pokus 2</title>
> </head>
> 
> <body>
> ěščřžýáíéúůťň
> ĚŠČŘŽÝÁÍÉÚŮŤŇ
> </body>
> </html>
> 
> se mi ve Firefoxu (v. 3.6.8) vždy zobrazí v kódování windows-1250 a musím ji
> pokaždé ručně přepnout na utf-8, aby byla čitelná. V IE8 to funguje správně. 
> Jak
> mám přemluvit Firefox, aby to zobrazoval správně?
> WinXP, Apache 2.2 (localhost)
> 
> Díky ivo


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [email protected]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem