Olen tekemässä sivustoa HTML5:llä ja ongelmani on se etten keksi mitään validia tapaa käyttää ISO-8859-1 enkoodausta.
Tässä se sivusto:
<!DOCTYPE html> <html lang="fi"> <head> <title>Sivuston otsikko</title> <meta name="description" content="sivuston kuvaus" /> <meta name="author" content="sivuston avainhenkilöt" /> </head> <body> Tekstiä, joka sisältää mm. ä-, ö- ja å-kirjaimia. </body> </html>
Ja tuohon lisänä ISO-8859-1-enkoodaus. Ongelma on etten saa utf-8:lla näkymään ääkkösiä oikein, muuten sekin kelpaisi.
Millä tavalla tuo ei mielestäsi ole validi?
Jos haluat lisätä dokumenttiin vielä erikseen merkistöilmoituksen, laita head-osion alkuun seuraava tagi:
<meta charset="ISO-8859-1" />
Lisäksi on tietenkin syytä säätää palvelimen asetuksista oikea merkistö otsikoihin tai lähettää tieto PHP:llä:
<?php header("Content-Type: text/html; charset=ISO-8859-1");
Aivan samat koodit toimivat UTF-8:n kanssa, kunhan muutat merkistön joka paikkaan, tallennat tiedostot oikein ja ilmoitat myös tietokannalle oikean merkistön (esim. mysql_set_charset('utf8')
tai SET NAMES 'utf8'
).
Metabolix kirjoitti:
Millä tavalla tuo ei mielestäsi ole validi?
Kyllä se tuolla koodilla onkin, mutta kun yrittää tunkea ISO-8859-1-merkistöilmoituksen tuohon niin koodi on epävalidia.
Metabolix kirjoitti:
Jos haluat lisätä dokumenttiin vielä erikseen merkistöilmoituksen, laita head-osion alkuun seuraava tagi:
<meta charset="ISO-8859-1" />
Kun merkistöilmoituksen lisäsi tuohon, W3C Validaattori antaa virheilmoituksen:
Line 7, Column 34: Internal encoding declaration iso-8859-1 disagrees with the actual encoding of the document (utf-8).
<meta charset="ISO-8859-1" />
Onko vika siis korvieni välissä?
Virhe tarkoittaa, että olet tallentanut tiedoston editorillasi UTF-8:na, mutta ilmoitat sivulla sen olevan ISO-8859-1.
Macro kirjoitti:
Virhe tarkoittaa, että olet tallentanut tiedoston editorillasi UTF-8:na, mutta ilmoitat sivulla sen olevan ISO-8859-1.
Ai jos kirjoitin tuon yllä olevan koodin sinne validaattorin kenttään suoraan?
Onko mieleesi juolahtanut lukea sivulta muutakin kuin punaiset osat? Juuri virheilmoituksen yläpuolella kerrotaan, että laatikkoon syötetty teksti käsitellään UTF-8:na.
Metabolix kirjoitti:
Juuri virheilmoituksen yläpuolella kerrotaan, että laatikkoon syötetty teksti käsitellään UTF-8:na.
Kerrotaan kyllä, mutta liian paljolla tekstillä ilman otsikon korostusta. Eikä asiaa sanota käyttöliittymän alkutilanteessa, siis siellä, missä teksti syötetään laatikkoon. (Jos joku jaksaa tästä valittaa asianomaiselle taholle, hyvä. Minun valituskiintiöni sinne suuntaan taitaa olla täynnä. :-))
Jos haluaa tarkistaa iso-8859-1-koodatun dokumentin Direct input -menetelmällä, pitäisi oikeastaan ensin mennä validaattorin sivulle, asettaa käsin koodaus iso-8859-1 selaimesta (Näytä > Merkistökoodaus tms.), valita Encoding-pudotusvalikosta iso-8859-1, syöttää teksti ja sitten antaa palaa.
Melkeinpä helpompaa taitaa olla upata tiedosto palvelimeen ja tehdä "Validate by URI".
Metabolix kirjoitti:
Onko mieleesi juolahtanut lukea sivulta muutakin kuin punaiset osat? Juuri virheilmoituksen yläpuolella kerrotaan, että laatikkoon syötetty teksti käsitellään UTF-8:na.
Mulla oli valinta tunnista automaattisesti. Eikö sen silloin pitäisi tunnistaa sen ISO-8859-1:ksi?
Ja kun muutin enkoodauksen siitä pudotusvalikosta tuli ilmoitus näin:
This document was Tentatively checked as HTML5
Result: Tentatively passed
Yucca kirjoitti:
Melkeinpä helpompaa taitaa olla upata tiedosto palvelimeen ja tehdä "Validate by URI".
Tai ihan vaan "Validate by File Upload" ilman palvelimelle lähettämistä.
combo kirjoitti:
Eikö sen silloin pitäisi tunnistaa sen ISO-8859-1:ksi?
Miten sen voi tunnistaa ISO-8859-1:ksi, kun lomakkeelta lähetetty data on joka tapauksessa UTF-8-merkistössä – kuten väärin tallennettu tiedostokin? Validaattori siis tunnisti automaattisesti, että lähetetty data on UTF-8-enkoodattu, kuten se lomakkeelle syötettynä tuolla sivustolla on. (Lomakkeen lähettäminen ISO-8859-1-muodossa aiheutti jonkinlaisen virheen.)
combo kirjoitti:
Ja kun muutin enkoodauksen siitä pudotusvalikosta ...
Katsopa, mikä on koodilaatikon sisältö muutoksesi jälkeen: validaattori poistaa automaattisesti ISO-8859-1-merkinnän ja lisää sen sijaan UTF-8-merkinnän.
Yucca kirjoitti:
Eikä asiaa sanota käyttöliittymän alkutilanteessa
Se on kieltämättä virhe. Silti olen sitä mieltä, että viimeistään ennen kysymyksen postausta foorumille pitäisi lukea validaattorin tuloste alusta loppuun. Otsikko Notes and Potential Issues kuulostaa ainakin minusta melko tärkeältä.
Kiitos avusta ja tiedoista! Kaikki johtui siis huolimattomuudestani ja tyhmyydestäni ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.