Nettisivut koodattu Iso Latin 9 (iso-8859-15), jolloin sen pitäisi ymmärtää tuo €-merkki, mutta kun laitoin sivut palvelimelle, se näyttää €-merkin tilalla ympyrän neljällä sakaralla. En edes löydä tästä mun iMac:stä ko. merkkiä. Pc:ssä se merkki tulee shift+4, kun macissä samasta yhdistelmästä tulee €-merkki.
Olen hieman ymmälläni. Onko kukaan törmännyt vastaavaan?
Olethan varma että kerrot selaimelle että käytetään tosiaan merkistöä iso-8859-15? Kyseinen merkki nimittäin on iso-8859-1:ssa samassa kohdassa kuin euronmerkki iso-8859-15:ssa.
€ = €
Syy ongelmaan on että käytät jotakin Macin omaa merkistöä etkä ISO-8859-15:ttä. Editorisi siis käyttää mäkin omaa natiivia merkistöä, jossa on eri kohtiin merkattu eri merkistöt. Löytänet jostakin mahdollisuuden määrittää käyttöön jokin muu merkistö. Toisaalta samalla vaivalla voisi siirtyä UTF-8:aan (tosin sen kanssa pitää varmistaa ettei tiedostoon alkuun tule BoMia eli byte order markia, muuten tulee ongelmia).
Perusongelma vanhoilla merkistöillä on se, että merkit 128 - 255 poikkeavat merkitykseltään hyvin paljon, ja mäkit käyttävät perinteisesti ihan eri merkistöjä kuin Windows, kun taas Linux-maailmassa UTF-8 on vakiinnuttanut asemansa. Sitten on vielä monia kansallisia merkistöjä, esim. japanilaisilla on shift-jis ja pari muuta, kiinalaisilla tuli muutama vuosi sitten käyttöön ihan uusi kattava merkistö vaikka Unicode onkin vahvasti vakiinnuttanut asemaansa. Unicode taas on luotu merkistöjen merkistöksi, ettei tarvitsisi olla olemassa kansallisia merkistöjä vaan että yksi on sama kaikkialla. UTF-8, UTF-16 ja UTF-32 koodaavat Unicoden merkkiarvot (code point) eri tavoin, joista UTF-8 on yhteensopivin vanhojen 8-bittisten merkistöjen kanssa.
Sivut on iso-8859-15.
Mietityttää se voiko tämä johtua siitä että macissä tulee tuo €-merkki eri kohdasta kuin pc:ssä.
Mac: shift+4
pc: altGr+e
Täytynee käyttää tuota €
Sivujen merkistö ei vaihdu sillä, että sivun koodiin määrittää halutun merkistön, se myös pitää tallentaa käyttäen kyseistä merkistöä. Jos et ole merkannut editoriasi tallentamaan nimenomaan ISO-8859-15 niin sitten se sijoittaa euromerkin todennäköisimmin mäkkimerkistön mukaiseen kohtaan. 8-bittiset merkistöt on aika julmia.
Olen laittanut editorin tallentamaan kaikki ISO-8859-15 ja sama lukee sivujen head-osiossa.
Edit:
validoin sivut w3.org validaattorilla ja se antaa seuraavan varoituksen:
Character Encoding mismatch!
The character encoding specified in the HTTP header (iso-8859-1) is different from the value in the <meta> element (iso-8859-15). I will use the value from the HTTP header (iso-8859-1) for this validation.
Hmm, sitten pitäisi vielä varmistaa että tallentuuko oikea merkin arvo tiedostoon (esim. heksaeditori), ja jos tallentuu, niin sitten vika on jollakin tapaa kytköksissä selaimeen tai palvelimeen jolta sivu tarjoillaan.
Tässä on vielä kritiikkiä tuosta ISO-8850-15:stä: http://hsivonen.iki.fi/iso-8859-15/
Sekä hyödyllinen vertailutaulukko ISO-8859-1:n ja 15 eroista: http://en.wikipedia.org/wiki/ISO-8859-15
Muoks!
Ah, eli palvelin tarjoilee väärin. Tarjoiletko sivun PHP:lla tai vastaavalla? Tai tiedätkö onko palvelin Apache?
Sivut php ja palvelin kaiketi Apache. Sivut nettihotelli.fi palvelimilla.
Voit lisätä tuon metatagin sisällön tarjottavaksi HTTP:n headereihin, eli lisäät seuraavan rivin PHP:ssa ennen kuin mitään sivun sisältöä on tulostettu:
header('content-type: text/html; charset=iso-8859-15');
Sen jälkeen myös palvelimelta tulee tieto oikeasta merkistöstä. Kaipa tuon palvelimen säädöissä on jotakin vikaa kun se noin aggressiivisesti pakottaa eri merkistön.
Ottaa silmän käteen ja etsii, niin huomaa että oletuksena palvelimella Apachen asetuksissa on määritelty merkistö muotoon ISO-8859-1, joka näkyy palvelimen selaimelle antamassa http headerissa vaikka meta-tagissa määriteltäisiinkin käytettäväksi merkistöksi jokin muu (esim. UTF-8). Selain noudattaa merkistökoodauksessa ensisijaisesti http headerin antamaa arvoa...
Noh, heivasin tuon ISO-8859-15 pois jo. Ehkä pitää siirtyä siihen UTF-8 myöhemmin.
Lähinnä asia mietityttää sen takia, että yleensä (omassa käytössäni) metatagin määrittäminen on riittänyt vaihtamaan merkistön, eikä ole ollut tarvetta lisätä headeriä. Muistan kyllä että olen myös joutunut tuskailemaan joskus asian kanssa, mutta minulla ei ole ollut tämänkaltaisia merkistöongelmia aikoihin sen jälkeen kun vaihdoin kokonaan UTF-8:n käyttöön. Ainut vaiva on BoMin kyttääminen, ettei sitä varmasti eksy mukaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.