Citat:
Originally posted by krangass@Mar 15 2006, 19:01
Jag har bytt til iso istället, tack för att ni har stått ut med mig, och tack för alla tips och råd Jag uppskattar verkligen all den hjälp jag har fått!!
|
Hmm.. Bra att det fixade sig för dig, men jag tycker att du fick kompromissa. Du hade bestämt dig för UTF-8, vad skulle ha hänt om du var tvungen att ha den?
Iallafall, character encoding för en browser kan specifieras av två saker.
1. Headern, den raden som säger "Content-type: text/html; charset=utf-8", som servern skickar INNAN den skickar din html-fil.
2. Meta-taggen.
Men låt oss börja enkelt. Säg att du har 1 enda statisk html-fil, med endast ASCII-tecken. Character encoding är ju inte direkt intressant eftersom dessa kodas likadant. Så inga bekymmer.
Men så fort du sparar din statiska html-fil med exempelvis svenska tecken i den, så räcker inte ASCII till, och du måste bestämma dig för en kodning som har stöd för tecknet. I sverige är det ISO-8859-1 eller Latin1 som har varit populärt. Idag är det fler och fler som går över till UTF-8, eftersom det är Unicode och man kan lagra betydligt fler tecken än i Latin1, vilket är signifikant för multinationella siter. Så din självaste html-fil har en viss kodning när den sparas.
När webbservern ska skicka den vidare, kan servern specifiera kodningen av datat till browsern mha headern. En del servrar är konfigurerade att specifiera enkodning och en del struntar i det och låter dig specifiera det per fil basis genom att skicka ut en header i något av serverspråken. Om browsern inte får kodningen från servern, kan den titta i meta-taggen. Får den inte kodningen där, så tar den som är default för browsern.
Vad händer då om filen är kodad med utf-8, headern säger iso-8859-1, och meta-taggen Shift_JIS? Ja, som du ser, så vill man gärna se till att man har samma kodning på alla ställen. Har man det, så har man gjort rätt.
Det finns ett undantag. I vissa fall, använder man dynamiska sidor. Dvs, applikationen (säg en jsp-fil) hämtar data från databasen och visar för browsern. Om man inte använt några specialtecken i självaste JSP-koden, behöver inte JSP-filen vara kodad i samma encoding som innehållet. Med andra ord, en CP_850 fil kan mycket väl hämta UTF-8 data från databasen och servera den till klienten. (Observera att det står MÅSTE INTE, däremot är det bra om man håller samma kodning hela vägen oavsett, så slipper man skjuta sig i foten)