Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Todellinen mysteeri

Jarzka [09.03.2007 22:49:49]

#

Ongelma:
Sivuston Ä, Ö yms. erikoiset kirjaimet näkyvät kysymysmerkkeinä

Ongelma alkoi kun:
Tallensin sivun eri ohjelmalla kuin ennen. Koodi on silti 100% sama ja olen yrittänyt tallentaa samaa koodia myös Notepadilla.

Ilmenee:
IE näyttää kirjaimet oikein. Firefoxilla on kuitenkin seuraavia ongelmia:

Käyttäjä 1: Kaikki sivut toimivat kuten pitääkin
Käyttäjä 2: Kysymysmerkit näkyvät ensimmäisellä sivulla, mutta katoavat sivua vaihtaessa.
Käyttäjä 3: Kysymysmerkit säilyvät sivua vaihtaessa.

Olen täysin ymmälläni. Sivun koodi on täsmälleen sama kuin ennen tämän ongelman ilmenemistä. Ja miksi se joillakin toimii ja joillakin ei. Kukaan ei ole vielä osannut tätä ratkaista.

EDIT: Mainittakoon vielä, että kun muutan index.php:n -> index2.php, ongelma katoaa. Mutta palaa heti jos muutan saman tiedoston takaisin index.php:ksi.

squid [09.03.2007 23:02:26]

#

Voisikohan olla niin, ettei sinulla ole jostain syystä merkistöä määriteltynä, jolloin homma ei toimi välttämättä oikein, vaan kaikkien selain päättelee merkistön itse, tässä tapauksessa väärin?

Jarzka [09.03.2007 23:04:54]

#

No teen minkä tahansa indexin, niin siinä näkyy kysymysmerkkeinä. Muilla sivuilla ei??

EDIT: Nojaa, nyt kysymysmerkit katosivat ainakin väliaikaisesti. Outoa.
EDIT 2: Ja jee tulivat takaisin \o/

Cornix [10.03.2007 13:29:52]

#

Taidat tallentaa tiedoston väärällä koodauksella. (Esim. UTF-8:lla vaikka palvelin kertookin sivun olevan ISO-8859-1:tä tai päinvastoin)

Katso tämä keskustelu.

Jarzka [10.03.2007 13:49:17]

#

En tajunnut tuosta mitään, mutta voiko asialle tehdä jotain?

EDIT: Katsotaas tuo linkki.

EDIT 2: Nojaa, lisäsin tämän rivin tiedostoon:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
jonka jälkeen kyssärit eivät katoa edes sivua vaihdettaessa, kuten aikaisemmin.

Blaze [10.03.2007 13:57:49]

#

Kysymysmerkit viittaavat siihen, että data on oikeasti ISO-8859-1:tä, kun selain luulee, että se on UTF-8:a (kuten tuolla meta-elementillä väitätkin!).

Jos asia olisi toisinpäin (data oikeasti UTF-8:a ja selain luulisi sitä ISO-8859-1:ksi), näkyisi ä-tyylisiä merkintöjä.

Ja lisättäköön vielä, että meta-elementissä kerrottu tieto on vasta toissijainen. Palvelin saattaa lähettää HTTP-otsikoiden mukana tiedon siitä, mitä merkkikoodausta sivu on. Tämä HTTP-otsikoissa oleva tieto on se, jota selaimet noudattavat. Meta-elementin sisältöä katsotaan vasta, jos HTTP-otsikoissa ei tuota tietoa ole.
Palvelimen lähettämän merkkikoodaustiedon näet vaikka Operalla: avaa sivu, ja paina F4. Palvelimen lähettämän tiedon voi lukea kohdasta "Encoding from server".
Tai jos omistat lynxin, voit komentaa lynx -head -dump url
Jos palvelimelta tuleva tieto on väärä, voit joko muuttaa dataasi niin, että se on oikeasti tuota palvelimen lähettämää merkkikoodausta, tai käyttää PHP:tä lähettämään oikea tieto merkkikoodauksesta (<?php header('Content-type: text/html; charset=utf-8'); ?>)

Jarzka [10.03.2007 14:00:37]

#

Lisäsin sitten tämmöisen:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

Enpä tuosta mitään ymmärrä, mutta nyt toimii kaikki merkit :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta