Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ihme "Encoding error"

Sivun loppuun

ErroR++ [18.05.2011 15:17:07]

#

Moro! Tossa oli vähän onkelmia ton nettisivukokeilun kanssa. Se sivu näyttää (vähän pois otettuna) tältä:

kokeiluURL kirjoitti:

This page contains the following errors:

error on line 11 at column 4: Encoding error
Below is a rendering of the page up to the first error.

Lähekoodin tein muistiolla, ja kun kokeilin sitä tuo ilmoitus tuli näyttöön. Muistiolla se näyttää tältä:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>KUPA!</title>
</head>
<body>
<li><a href="Kupa.com.xhtml">Etusivu</a></li>
<li><a href="myymme.xhtml">Myymme</a></li>
<li><p>Projektit</p></li>
<li><a href="ohjeet.xhtml">Ohjeet</a></li>
<p>Täällä käsitellään projektit.</p>
</body>
</html>

Niin ja kun kokeilin sen toimintaa niin sen lähekoodi on seuraava:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>KUPA!</title>

</head>

<body>

<li><a href="Kupa.com.xhtml">Etusivu</a></li>

<li><a href="myymme.xhtml">Myymme</a></li>

<li><p>Projektit</p></li>

<li><a href="ohjeet.xhtml">Ohjeet</a></li>

<p>T

Joo, ja aina kun muokkaan sitä muistiolla niin tallennan sen myös.

Osaisko joku auttaa?

Blaze [18.05.2011 15:49:46]

#

Eli kuolee ensimmäiseen ä-kirjaimeen. Purkkaratkasuna voit korvata jokaisen ä-kirjaimen merkkijonolla &auml;

Oikeaa ratkasua en osaa sanoa kun en tunne kehitysympäristöäs. Minkälainen palvelin sulla on? Entä millä kirjotat koodis? Eikun senhän sanoitki, no sitten; mikä formaatti sulla on valittuna siinä tallennusdialogissa kun otat "Tallenna nimellä"?

Jokotai [18.05.2011 15:59:43]

#

Käytä unicodea.

ErroR++ [18.05.2011 16:25:30]

#

Siis ensin luon uuden textitiedoston. Sitten kirjotan sinne koodin. Sitten laitan valikosta "Tallenna nimellä". Sitten laitan nimeksi vaikka "Testi.xhtml". Sitten laitan tiedostotyypiksi "Kaikki tiedostot". Sitten vain napautan "Tallenna". Sitten laitan sen pois. Menen vaikka Resurssienhallinnasta sinne kansiooon minne sen tallensin. Sitten tuplaklikkaan sitä ja sivu avautuu!!!

-tossu- [18.05.2011 16:48:17]

#

Mitä enkoodausta käytät tiedostoissa?

En ole käyttänyt Notepadia pitkään aikaan, mutta sen tallennusdialogissa taisi olla mahdollisuus vaihtaa käyttetävää enkoodausta.

Macro [18.05.2011 17:19:48]

#

Laita head-tagin sisään ilmoitus merkistöstä. Notepadilla se on ainakin XP:ssä oletuksena ISO-8859-1. Vistan ja 7:n Notepad-versioissa voi tallennettaessa muuttaa merkistön myös UTF-8:ksi.

ErroR++ [18.05.2011 18:30:35]

#

Mulla on XP ja siinä EI ole tota ISO-8859-1. Mutta siinä on vaihtoehdot:

ANSI
Unicode
Unicode big endian
UTF-8

Muta se &auml; autto.

ErroR++ [18.05.2011 18:30:35]

#

Mulla on XP ja siinä EI ole tota ISO-8859-1. Mutta siinä on vaihtoehdot:

ANSI
Unicode
Unicode big endian
UTF-8

Muta se &auml; autto.

Macro [18.05.2011 18:35:57]

#

Ansi on just toi ISO-8859-1.

The Alchemist [18.05.2011 19:29:46]

#

Älä käytä noita HTML-entiteettejä vaan laita merkistö kuntoon. Unicodea vaan kehiin.

Grez [18.05.2011 21:13:23]

#

Noista vaihtoehdoista EI Unicode tai Unincode big endian vaan UTF8, joka on siis unicodea, mutta 8-bittiseksi koodattuna.

ErroR++ [18.05.2011 21:22:12]

#

Okei.

Yucca [18.05.2011 21:38:31]

#

Arvailun sijaan kannattaisi nyt kysyjän kertoa sivun URL. Ratkaisevaa on nimittäin se, mitä palvelin kertoo HTTP-otsakkeissa. Sen jälkeen tiedetään, mitä pitää valita Muistiossa (ANSI vai UTF-8 – muissa vaihtoehdoissa ei toki ole mieltä).

Tietenkin &auml; auttaa, koska se toimii koodauksesta riippumatta, mutta sellainen on todella k&ouml;mpel&ouml;&auml;.

P.S. öANSIö ei ole sama kuin öISO-8859-1ö, vaikka skandien osalta onkin sama. Se on Suomessa yleensä windows-1252, muualla ehkä jotain muuta.

Othnos [18.05.2011 23:46:56]

#

Yucca kirjoitti:

Arvailun sijaan kannattaisi nyt kysyjän kertoa sivun URL. Ratkaisevaa on nimittäin se, mitä palvelin kertoo HTTP-otsakkeissa. Sen jälkeen tiedetään, mitä pitää valita Muistiossa (ANSI vai UTF-8 – muissa vaihtoehdoissa ei toki ole mieltä).

ErroR++ kirjoitti:

Siis ensin luon uuden textitiedoston. Sitten kirjotan sinne koodin. Sitten laitan valikosta "Tallenna nimellä". Sitten laitan nimeksi vaikka "Testi.xhtml". Sitten laitan tiedostotyypiksi "Kaikki tiedostot". Sitten vain napautan "Tallenna". Sitten laitan sen pois. Menen vaikka Resurssienhallinnasta sinne kansiooon minne sen tallensin. Sitten tuplaklikkaan sitä ja sivu avautuu!!!

Yucca [19.05.2011 00:06:28]

#

Othnos kirjoitti:

Yucca kirjoitti:

Arvailun sijaan kannattaisi nyt kysyjän kertoa sivun URL. Ratkaisevaa on nimittäin se, mitä palvelin kertoo HTTP-otsakkeissa. Sen jälkeen tiedetään, mitä pitää valita Muistiossa (ANSI vai UTF-8 – muissa vaihtoehdoissa ei toki ole mieltä).

ErroR++ kirjoitti:

Siis ensin luon uuden textitiedoston. Sitten kirjotan sinne koodin. Sitten laitan valikosta "Tallenna nimellä". Sitten laitan nimeksi vaikka "Testi.xhtml". Sitten laitan tiedostotyypiksi "Kaikki tiedostot". Sitten vain napautan "Tallenna". Sitten laitan sen pois. Menen vaikka Resurssienhallinnasta sinne kansiooon minne sen tallensin. Sitten tuplaklikkaan sitä ja sivu avautuu!!!

Jos tarkoituksesi oli sanoa (sanaakaan sanomatta, vain lainaillen), että kysyjä ei ole mielestäsi lainkaan edes yrittänyt tehdä nettisivua, kuten tallentaa tiedostoa (edes omassa koneessa olevaan) HTTP-palvelimeen, niin olisiko kannattanut lisätä, että silloin jokainen mahdollinen ratkaisu tähän ongelmaan on vain näennäinen? Nettisivu kun väistämättä on jossain palvelimessa, ja silloin koodauksen todellakin pitää olla sen mukainen, mitä palvelin ilmoittaa.

Grez [19.05.2011 00:17:27]

#

Yucca kirjoitti:

P.S. öANSIö ei ole sama kuin öISO-8859-1ö, vaikka skandien osalta onkin sama. Se on Suomessa yleensä windows-1252, muualla ehkä jotain muuta.

No Windows-1252 on tasan oikein, mutta on se lähempänä ISO-8859-1 kuin vain pelkkien skandien osalta. Itse asiassa kun nyt kuitenkin ollaan www-sivuja tekemässä, niin HTML5 -speksi jopa vaatii, että jos sivu ilmoittaa olevansa ISO-8859-1 koodattu, niin selaimen pitää käsitellä se windows-1252 merkistöä käyttäen. Tuntuu kyllä uskomattomalta, mutta niin tuossa lukee.

Tosin näin päin toimimisesta ei ole paljoa haittaa, koska Windows-1252 sisältää kaikki ne merkit, mitkä ISO-8859-1:ssä on määritelty. Tietenkin ISO-8859-1:stä puuttuvien merkkien käyttäminen ISO-8859-1 merkatuissa tekstissä on huono juttu. Käytännössä varmaan suurin puute on € -merkki.

Blaze [19.05.2011 00:40:08]

#

Grez kirjoitti:

HTML5 -speksi jopa vaatii, että jos sivu ilmoittaa olevansa ISO-8859-1 koodattu, niin selaimen pitää käsitellä se windows-1252 merkistöä käyttäen. Tuntuu kyllä uskomattomalta, mutta niin tuossa lukee.

Eh?!
No ei sillä, etteikö Unicodea kannattais käyttää muutenki aina, mutta uskomatonta scheissea tuossakin standardissa.

Othnos [19.05.2011 00:43:53]

#

Yucca kirjoitti:

Jos tarkoituksesi oli sanoa (sanaakaan sanomatta, vain lainaillen), että kysyjä ei ole mielestäsi lainkaan edes yrittänyt tehdä nettisivua, kuten tallentaa tiedostoa (edes omassa koneessa olevaan) HTTP-palvelimeen, niin olisiko kannattanut lisätä, että silloin jokainen mahdollinen ratkaisu tähän ongelmaan on vain näennäinen? Nettisivu kun väistämättä on jossain palvelimessa, ja silloin koodauksen todellakin pitää olla sen mukainen, mitä palvelin ilmoittaa.

Juurikin näin.

Kertoisitko tietämättömälle (minulle) miten tiedoston avaaminen suoraan selaimeen ja palvelimen kautta eroavat toisistaan puhtaan html-merkkauksen osalta?

Grez [19.05.2011 00:49:42]

#

Othnos kirjoitti:

Kertoisitko tietämättömälle (minulle) miten tiedoston avaaminen suoraan selaimeen ja palvelimen kautta eroavat toisistaan puhtaan html-merkkauksen osalta?

Palvelin ilmoittaa kaikenlaista dokumentin ulkopuolista tietoa ns. headereissa. Esim. tämä ohjelmointiputka antaa seuraavat tiedot, jotka eivät sisälly itse html-dokumenttiin:

Connection:Keep-Alive
Content-Type:text/html
Date:Wed, 18 May 2011 21:48:21 GMT
Keep-Alive:timeout=15, max=100
Server:Apache
Transfer-Encoding:chunked

No, tämä nyt oli sikäli huono esimerkki, koska tässä ei ole merkistöä kerrottu.

Kävin hakemassa W3.Orgin etusivun, ja siellä oli tällaiset tiedot:

Accept-Ranges:bytes
Cache-Control:max-age=600
Connection:close
Content-Length:33335
Content-Location:Home.xhtml
Content-Type:application/xhtml+xml; charset=utf-8
Date:Wed, 18 May 2011 21:50:56 GMT
ETag:"8237-4a385dc5e7b80;89-3f26bd17a2f00"
Expires:Wed, 18 May 2011 22:00:56 GMT
Last-Modified:Wed, 18 May 2011 05:07:10 GMT
P3P:policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
Server:Apache/2
TCN:choice
Vary:negotiate,accept

Kuten huomaan, tuossa Content-Type -kohdassa määritellään, että merkistö on utf-8. Tätä määritystä ei tiedetä, jos tiedosto vaan avataan levynkulmalta.

Othnos [19.05.2011 01:07:05]

#

Mutta eikös Content-Type ilmoiteta meta-tagina xhtml:n headereissa? Itselläni ilman meta-tagia antaa merkistöksi ISO-8859-1, mutta seuraavalla koodilla UTF-8.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Ja juurikin pelkästään tiedoston avaamisella selaimeen.

Grez [19.05.2011 01:17:39]

#

Niin, tuohan on nimensä mukaisesti http-equiv, eli tarkoitettu ajamaan ilman palvelinta saman asian kuin jos laitaisit sen palvelimelta. Mutta kun se sivu on kuitenkin todennäköisesti tarkoitus laittaa sinne palvelimelle, niin mitäpä tuumaat seuraavasta:

http://http://grez.info/putka/othnos/

Jos katsot "view source" niin tuolla lukee meta tagissa UTF8.. :D Sitten taas jos sen tallettaa (ainakin Chromessa) levylle, niin se muuttuukin ISO-8859-1:ksi. Ja jos taas tuon alkuperäisen tiedoston tallettaa suoraa levylle niin että meta tagi UTF8:sta jää ja sen avaa, niin tekstit näkyy väärin.

Eli pointti on, että kun selain lataa sivun palvelimelta, niin selainta ei juuri vähempää voisi tuo meta tagi kiinnostaa.

The Alchemist [19.05.2011 12:23:44]

#

Othnos kirjoitti:

Mutta eikös Content-Type ilmoiteta meta-tagina xhtml:n headereissa? Itselläni ilman meta-tagia antaa merkistöksi ISO-8859-1, mutta seuraavalla koodilla UTF-8.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Ja juurikin pelkästään tiedoston avaamisella selaimeen.

Riippuu ihan siitä, miten XHTML parsitaan. Jos sen content-typeksi asettaa text/html:n, niin tällöin selain kuuntelee myös tuota metatagia. Jos content-type taasen on application/xhtml+xml tai joku muu XML-tyyppi, niin metatagilla ei tee yhtään mitään.

XML:n enkoodauksen voi asettaa prologissa, joka siis tulee aivan dokumentin alkuun (ei edes white-spacea eteen):

<?xml version="1.0" encoding="utf-8"?>

Content-type voi vaikuttaa myös oletusmerkistöön, sillä normaalisti selaimet arvaavat sisällön olevan ISO-enkoodattua, mutta XML-standardissa oletusmerkistö onkin UTF-8.

Grez: Kyllä sillä metatagillakin on väliä, jos palvelin ei lähetä merkistöä headereiden seassa. Taitaa omakin palvelimeni tehdä näin.

ErroR++ [19.05.2011 13:54:02]

#

Joo pitäis ennemmin älytä että siihen eteen tulee se "<?xml version="1.0" encoding="utf-8"?>". Ei auta.

tsuriga [19.05.2011 14:19:08]

#

Grez kirjoitti:

HTML5 -speksi jopa vaatii, että jos sivu ilmoittaa olevansa ISO-8859-1 koodattu, niin selaimen pitää käsitellä se windows-1252 merkistöä käyttäen.

Niinkö tuo

HTML5 draft kirjoitti:

When a user agent would otherwise use an encoding -- to either convert content to Unicode characters or convert Unicode characters to bytes

tulkitaan? Jäi itselle hieman epäselväksi. Kääntävätkö selaimet aina sivut ensin Unicodeksi, viitataanko tässä tällä siihen?

Grez [19.05.2011 14:19:47]

#

The Alchemist kirjoitti:

Grez: Kyllä sillä metatagillakin on väliä, jos palvelin ei lähetä merkistöä headereiden seassa. Taitaa omakin palvelimeni tehdä näin.

Joo niin unohdin siis toistaa sen puheenaiheen, eli kuten Yucca sanoi, että tarkistaa palvelimen lähettämän otsakkeen.

Eli siis, kannattaa katsoa lähettääkö palvelin jonkin merkistön otsakkeissa. Jos lähettää niin selain ei välitä metatagista.

Othnos [19.05.2011 18:40:29]

#

Oli miten oli, W3.org suosittelee (?) käyttämään kyseistä meta-tagia lähetettiin tieto headereissa eli ei. Samassa kappaleessa mainitaan myös, että kannattaa käyttää headereissa ilmoitusta jos vain pystyy. Mielenkiintoista luettavaa merkistöistä muutenkin.

W3.org

Yucca kirjoitti:

Nettisivu kun väistämättä on jossain palvelimessa, ja silloin koodauksen todellakin pitää olla sen mukainen, mitä palvelin ilmoittaa.

Eli mikä koodaus täällä Ohjelmointiputkassa on, minkä palvelin ilmoittaa?

Grez kirjoitti:

Mutta kun se sivu on kuitenkin todennäköisesti tarkoitus laittaa sinne palvelimelle, niin mitäpä tuumaat seuraavasta:

http://grez.info/putka/othnos/

Havainnollistaa hyvin, että headereilla on isompi prioriteetti, kuin dokumentissa olevalla merkkauksella.

Mutta jos tarkoituksesi on käyttää tiettyä merkistöä ja esimerkiksi palveluntarjoaja vaihtuu, eikä merkistöä ilmoiteta headereissa taikka dokumentissa, saadaan taas ihastella ?-merkkejä.

Metabolix [19.05.2011 18:50:51]

#

Othnos kirjoitti:

Yucca kirjoitti:

Nettisivu kun väistämättä on jossain palvelimessa, ja silloin koodauksen todellakin pitää olla sen mukainen, mitä palvelin ilmoittaa.

Eli mikä koodaus täällä Ohjelmointiputkassa on, minkä palvelin ilmoittaa?

ISO-8859-1, koska muuta ei ilmoiteta. Tämän olisit varmaan itsekin saanut selvitettyä hetkessä hakukoneella.

ErroR++ [19.05.2011 19:36:58]

#

No sitten olis toinen ongelma. Sehän on tietysti kirjautumisessa. En saa niitä textijutskia näkyviin paitsi tunnuslaatikon.

Othnos [19.05.2011 19:47:34]

#

ErroR++ kirjoitti:

No sitten olis toinen ongelma. Sehän on tietysti kirjautumisessa. En saa niitä textijutskia näkyviin paitsi tunnuslaatikon.

Mitäs "textijutskia" haluat saada näkyviin? Koodin näyttäminen yleensä helpottaa kummasti.

The Alchemist [19.05.2011 21:06:00]

#

Metabolix kirjoitti:

Othnos kirjoitti:

Yucca kirjoitti:

Nettisivu kun väistämättä on jossain palvelimessa, ja silloin koodauksen todellakin pitää olla sen mukainen, mitä palvelin ilmoittaa.

Eli mikä koodaus täällä Ohjelmointiputkassa on, minkä palvelin ilmoittaa?

ISO-8859-1, koska muuta ei ilmoiteta. Tämän olisit varmaan itsekin saanut selvitettyä hetkessä hakukoneella.

Oikea vastaus on: ISO-8859-1, koska se ilmoitetaan metatagilla. Jos mitään määritystä ei olisi tehty, niin selain voisi tulkita merkistön ihan miksi tahansa. Firefox ainakin antaa käyttäjän valita oletusmerkistön, joka toki on defaulttina tuo sama.

Metabolix [19.05.2011 21:17:54]

#

The Alchemist kirjoitti:

Oikea vastaus on: ISO-8859-1, koska se ilmoitetaan metatagilla.

Anteeksi kamalasti, tulkitsin, että "palvelimen ilmoittama" tarkoittaisi tässä keskustelussa HTTP-otsikossa olevaa. Sivun sisältöönhän HTTP-palvelimella ei lähtökohtaisesti ole vaikutusta. Sitä paitsi Putkassa on myös tavallisia tekstitiedostoja, joiden merkistö ei käy sisällöstä ilmi.

The Alchemist kirjoitti:

Jos mitään määritystä ei olisi tehty, niin selain voisi tulkita merkistön ihan miksi tahansa.

Nyt taidat olla väärässä.

RFC 2616 (HTTP/1.1) kirjoitti:

The "charset" parameter is used with some media types to define the character set (section 3.4) of the data. When no explicit charset parameter is provided by the sender, media subtypes of the "text" type are defined to have a default charset value of "ISO-8859-1" when received via HTTP.

Myös selaimen vaihtotoiminnosta on hauska maininta:

RFC 1945 (HTTP/1.0) kirjoitti:

Note: Many current HTTP servers provide data using charsets other than "ISO-8859-1" without proper labelling. This situation reduces interoperability and is not recommended. To compensate for this, some HTTP user agents provide a configuration option to allow the user to change the default interpretation of the media type character set when no charset parameter is given.

Othnos [19.05.2011 21:38:43]

#

Metabolix kirjoitti:

Anteeksi kamalasti, tulkitsin, että "palvelimen ilmoittama" tarkoittaisi tässä keskustelussa HTTP-otsikossa olevaa.

Tulkitsit aivan oikein ja hakusanat viittasivat juurikin kyseiseen asiaan.

Mutta väittäisin, että Ohjelmointiputka olisi aika kuollut paikka jos jokainen uudempi käyttäjä googlettaisi alusta loppuun kysymyksensä. Jos tämä on forumin tarkoitus niin täytyypä olla tarkempi "hakukoneiden" kanssa.

The Alchemist [19.05.2011 23:07:11]

#

Metabolix kirjoitti:

The Alchemist kirjoitti:

Oikea vastaus on: ISO-8859-1, koska se ilmoitetaan metatagilla.

Anteeksi kamalasti, tulkitsin, että "palvelimen ilmoittama" tarkoittaisi tässä keskustelussa HTTP-otsikossa olevaa. Sivun sisältöönhän HTTP-palvelimella ei lähtökohtaisesti ole vaikutusta.

Annoit vastaukseksi jonkun randomin Google-linkin HTTP-protokollan määrityksiin. Tällä ei ole kuitenkaan juurikaan tekemistä kysymyksen kanssa, koska Putkan nettisivuilla enkoodaus on määritelty metatagein. Kysymys oli sitä paitsi sarkastista saivartelua...

lainaus:

The Alchemist kirjoitti:

Jos mitään määritystä ei olisi tehty, niin selain voisi tulkita merkistön ihan miksi tahansa.

Nyt taidat olla väärässä.

En ole. Tämän voi helposti todeta aukaisemalla Firefoxin ja kokeilemalla. Vaatii toki senkin, että kappaleet luetaan loppuun eikä pätkitä kontekstia pois. Lainaamasi määritelmätkin vahvistivat väitteeni.

Metabolix [19.05.2011 23:31:20]

#

The Alchemist kirjoitti:

Lainaamasi määritelmätkin vahvistivat väitteeni.

Lainaamani määritelmät sanovat aivan yksiselitteisesti, että kun HTTP-protokollalla vastaanotetaan tekstiä, jos muuta merkistöä ei ilmoiteta, merkistön kuuluu olla ISO-8859-1. Jos olet eri mieltä, osoita kohta, jossa sanotaan muuta.

Jos tarkoituksesi olikin väitellä siitä, mitä kaikkea poikkeavaa palvelin ja selain teknisesti voivat tehdä, saat kyllä väitellä yksiksesi.

LaNu [19.05.2011 23:33:11]

#

The Alchemist kirjoitti:

En ole. Tämän voi helposti todeta aukaisemalla Firefoxin ja kokeilemalla. Vaatii toki senkin, että kappaleet luetaan loppuun eikä pätkitä kontekstia pois. Lainaamasi määritelmätkin vahvistivat väitteeni.

Olet. Vaikka siellä olisi HTTP-headerit, XML-encoding ja http-equiv annettuna, silti käyttäjä voi ihmetellä sivua ihan vapaasti valitsemallaan merkistöllä tai ohjelmalla. Tuollaisella selaimen ominaisuudella ei todellakaan ole mitään tekemistä minkään standardin kanssa. Kyseessä on selaimen käyttäjälle tarjoama paikko-mahdollisuus, jotta sivu saataisiin näytettyä.

Grez [19.05.2011 23:33:46]

#

Ei se oikeastaan edes ole määritelmien vastaista. Tuossahan puhutaan mikä selaimen tulee tulkita merkistön oletuksena olevan. Jos käyttäjä on sanonut että haluaa selaimen poikkeavan oletuksesta, niin silloinhan selain toimii sekä oikein että speksin mukaan vaikka käyttäisikin muuta koodausta.

Lisäksi kun ottaa huomioon, että käytännössä kaikki selaimet antaa käyttäjän valita koodauksen, niin kyseessä ei myökään ole yksittäisen selaimen asia.

Toisaaltahan täällä keskusteltiin siitä, että miten sivun saa näkymään oikein "normaalitilanteessa", joten kaikenlainen jauhaminen siitä, että miten jollakin normaalista poikkeavalla asetuksella jokin selain toimii on melko epäolennaista, kuten sekin mitä speksissä lukee.

LaNu [19.05.2011 23:45:28]

#

Grez kirjoitti:

Ei se oikeastaan edes ole määritelmien vastaista. Tuossahan puhutaan mikä selaimen tulee tulkita merkistön oletuksena olevan.

Heh, hassu. Mistä lähtien ohjelmistotekninen termi default on noin tulkittu? :D

Oletus tarkoittaa, että se merkistö on ISO-8859-1 ellei muuta ilmoiteta. Selaimen käyttäjälle ei speksissä anneta keinoa ilmoittaa merkistöä. Se on ihan puhtaasti selainten ominaisuus. Löytyy toki kaikista PC-selaimista, mutta esim. mobiilissa vähän harvinaisempi moinen debug-toiminto ;-)

Grez [19.05.2011 23:49:00]

#

Eli oma tulkintasiko on, että kaikki selaimet toimii väärin kun antavat käyttäjän valita jonkin muun kuin palvelimen kertoman merkistön?

LaNu [20.05.2011 00:04:00]

#

Grez kirjoitti:

Eli oma tulkintasiko on, että kaikki selaimet toimii väärin kun antavat käyttäjän valita jonkin muun kuin palvelimen kertoman merkistön?

Kyllä, näin. W3C:n speksi sanoo yksikäsitteisesti, mitä merkistöä selaimen pitää käyttää. Muu on luonnollisesti speksin vastaista toimintaa. Eihän siitä mitään haittaa ole kenellekään, että monet selaimet tarjoaa mahdollisuuden kokeilla löytää oikea merkistö rikkinäisellä sivulla. Sillä nyt vaan ei ole speksin kanssa mitään tekemistä.

The Alchemist [20.05.2011 08:37:19]

#

Metabolix kirjoitti:

The Alchemist kirjoitti:

Lainaamasi määritelmätkin vahvistivat väitteeni.

Lainaamani määritelmät sanovat aivan yksiselitteisesti, että kun HTTP-protokollalla vastaanotetaan tekstiä, jos muuta merkistöä ei ilmoiteta, merkistön kuuluu olla ISO-8859-1. Jos olet eri mieltä, osoita kohta, jossa sanotaan muuta.

Jos tarkoituksesi olikin väitellä siitä, mitä kaikkea poikkeavaa palvelin ja selain teknisesti voivat tehdä, saat kyllä väitellä yksiksesi.

HTTP-pyyntö ja HTML-dokumentti ovat aivan eri abstraktion tasoilla ja niillä on omat sääntönsä. XML:nkin oletusmerkistö on aina UTF-8, sanoi joku dokkari mitä tahansa alemman tason tiedonvälitysmekanismeista.

Minä en myöskään väittele mistään teoreettisista häxeistä vaan kerroin miten asiat ovat. Käyttäjä on vapaa valitsemaan merkistön, se on fakta.

ErroR++ [20.05.2011 13:51:11]

#

Othnos kirjoitti:

Mitäs "textijutskia" haluat saada näkyviin? Koodin näyttäminen yleensä helpottaa kummasti.

No siis tässä:

<form action="varmistus" method="post">
<input type="text" name="tunnus" value="Tunnus">
<input type="password" name="salasana" value="salasana">
<input type="submit" name="kirjaudu" value="salasana">
</form>

Tukki [20.05.2011 16:44:21]

#

Tässä on varmaan koko ErroR++:n jutussa kysymys siitä että tiedostopääte (ja myös doctype vaikka sillä tuskin on väliä) väittää tiedoston olevan xhtml:ää. Kun tiedosto avataan selaimeen suoraan levyltä, ei parempaa tietolähdettä (http-headeri tai meta-tagi) tässä ole saatavilla joten selaimet parsivat dokumentin xml:nä (todennäköisesti application/xhtml+xml:nä, en saanut tuota ulos selaimistani). Tässä keskustelussa näytetyt lähdekoodipätkät eivät kuitenkaan ole validia eikä hyvinmuodostettua xml:ää (eikä siis myöskään xhtml:ää) ja se aiheuttaa nuo virheet ja "textijutskien" näkymättömyydet.

Ensimmäinen virhe johtunee siitä että kuten mainittu, tiedosto oli tallennettu ANSI-merkistöllä, mutta sitä ei tiedostossa kerrota. XML:ssä oletus on utf8 joten ä:n tullessa vastaan tulee virhe.

Toinen virhe on nuo input-elementit joita ei ole suljettu.

Testasin tätä WIN7:ssa Chrome:lla ja IE9:llä. Tosiaankin tiedostopäätteen muuttaminen xhtml:stä html:ksi aiheutti sen että selaimet antoivat em. virheet "anteeksi".

Koska ErroR++:lla ei näytä olevan kunnollista tuntemusta xhtml:n ja html:n eroista, suosittelen että vaihdat tiedostopäätteiksi html (ja jos haluat olla tarkka niin doctypen myös vastaavaksi vaikka sillä tuskin on mitään käytännön merkitystä), jolloin elämäsi helpottuu melkoisesti. En oikein edes keksi mitään hyötyä mitä voisit saavuttaa xhtml:ää käyttämällä.

PS: Ihmettelen tuota selainten käyttäytymistä kyllä hieman siltä osin että jos ne kerran parsivat sivun xml:nä niin miksi ne näyttävät siitä yhtään mitään jos dokumentti ei ole hyvinmuodostettu. Eikös speksi sano tästä jotain tyyliin että yhdenkin sellaisen virheen ilmaantuessa joka aiheuttaa että dokumentti ei ole hyvinmuodostettu koko dokumentti on virheellinen eikä sitä saa tulkita lainkaan?

Grez [20.05.2011 18:05:54]

#

Tukki kirjoitti:

Eikös speksi sano tästä jotain tyyliin että yhdenkin sellaisen virheen ilmaantuessa joka aiheuttaa että dokumentti ei ole hyvinmuodostettu koko dokumentti on virheellinen eikä sitä saa tulkita lainkaan?

No eikös täällä jo esitetty näkemyksiä että selaimet toimii väärin.

Taitaa olla aika pitkä perinne sillä, että selaimista tehdään käyttäjäystävällisempiä kuin speksit edellyttäisi. Kuitenkin ne pari nörttiä jotka itkee aiheesta on pientä verrattuna niihin miljoonaan käyttäjään jotka itkee selaimesta kun vika on sivussa.

Tukki [21.05.2011 00:12:49]

#

Grez kirjoitti:

Kuitenkin ne pari nörttiä jotka itkee aiheesta on pientä verrattuna niihin miljoonaan käyttäjään jotka itkee selaimesta kun vika on sivussa.

Muuten melkein hyväksyisin tämän selityksen, mutta xml ei kyllä ole niiden miljoonan käyttäjän kieli. Se on niiden parin nörtin kieli, jotka haluavat hyödyntää sitä johonkin tiettyyn erityistarkoitukseen. Siksi suosittelin alkuperäisellekin kirjoittajalle html:ään siirtymistä.

Testasin muuten tätä esimerkkiä vähän lisää. Firefox toimii niinkuin oletin eli kun siihen avataan virheellinen dokumentti xhtml-päätteellä suoraan levyltä tai application/xhtml+xml dokumentti http-palvelimelta se näyttää ainoaastaan virheilmoituksen eikä mitään muuta dokumentista. Varmaan aiemmin olen vastaavaa kokeillut ainoastaan Firefoxilla ja siitä on ehkä jäänyt käsitys että kaikki selaimet toimisivat samoin.

jo123 [21.05.2011 11:33:49]

#

Xml ei ole parin nörtin kieli, vaan esimerkiksi html on myös xml:llää. Jos olen oikein ymmärtänyt (älkää tappako jos olen väärässä) xml on yläkäsite kyseisellä perjaatteella toimiville merkkauskielille.

Edit: Googletin vähän ja vaikuttaa pahasti siltä että olen väärässä.

Grez [21.05.2011 11:58:47]

#

Joo, olet väärässä. Xhtml on tehty juuri sitä varten, että se olisi xml:ää. Html ei siis sitä automaattisesti ole, joskin on mahdollista kirjoittaa html-dokumentti, joka on myös validia xml:ää.

Sinänsähän html:ssä on toki samaa ideaa, mutta siinä ei mm. suljeta kaikkia avaavia tageja. Esim. img- ja input-tagit.

Mutta mitä tulee tuohon että nörtit vs muut, niin kyllähän asioista tietämättömätkin saattaa koodailla xhtml:ää. Varsinkin kun se oli jossain vaiheessa "viimeisin" versio, ja varsinkin asioita tuntemattomat herkästi tykkää käyttää "uusinta versiota", vaikka vanhempi sopisi tarpeeseen paremmin.

Lisäksi on mahdollista, että jotkut toistaitoiset on vääntäneet esim. PHP:llä rakentuvia xhtml-sivuja. Ja vaikka sellaiset aluksi tai tekijän omissa testeissä olisi validia, niin ne saattaa olla rikki myöhemmässä vaiheessa. Ilmeisesti sitten joidenkin selainten tekijät on katsoneet tarpeelliseksi että näiltäkin sivuilta näytetään se tieto, mikä on mahdollista, eikä pelkkää virheilmoitusta.

LaNu [21.05.2011 12:36:14]

#

Grez kirjoitti:

Taitaa olla aika pitkä perinne sillä, että selaimista tehdään käyttäjäystävällisempiä kuin speksit edellyttäisi. Kuitenkin ne pari nörttiä jotka itkee aiheesta on pientä verrattuna niihin miljoonaan käyttäjään jotka itkee selaimesta kun vika on sivussa.

Jos tämä oli suunnattu minulle, kehottaisin lukemaan viestini uudestaan. Olet saanut "väittelyn" aikaiseksi lukutaidottomuuttasi. Lue ajatuksella uudestaan ennenkö jatkat vittuilua: https://www.ohjelmointiputka.net/keskustelu/22573-ihme-encoding-error/sivu-1#v181194

Varmaan 90% maailman nettisivuista ei toimisi, jos selaimet ei yhtään paikkaisi virheitä. On se ihan kiva, että paikkaavat.

Blaze [21.05.2011 12:59:51]

#

LaNu kirjoitti:

On se ihan kiva, että paikkaavat.

No jaa... Ehkä ois parempi, jos eivät paikkais, niin ihmiset joutuis korjaamaan rikkinäiset sivunsa ja kaikilla ois kivempaa.

ErroR++ [21.05.2011 21:23:06]

#

Siis en tiedä mitä käytän, vaikka tiedostopääte on .xhtml. Siinä kuvakkeessa on kuitenkin "Chrome HTML Document".

ErroR++ kirjoitti:

<form action="varmistus.php" method="post">
<b>Tunnus:</b><input type="text" name="tunnus" value="Tunnus">
<b>Salasana</b><input type="password" name="salasana" value="salasana">
<input type="submit" name="kirjaudu" value="Kirjaudu">
</form>

Siis anteeks, toi toimii. Heti kun ite kokeilee!


Mutta php ei toimi koska en käytä mitään palvelinta. Ylempänä lukee miten ne sivut teen.

Grez [22.05.2011 00:51:52]

#

LaNu kirjoitti:

Jos tämä oli suunnattu minulle, kehottaisin lukemaan viestini uudestaan.

Ei ollut. Viesti oli vastaus Tukille. Ja ryhmät joihin viittasin viestissäni kuvasi maailmanlaajuista nettikäyttäjäpopulaatiota ja sen alaryhmitä yleisesti. Korostan vielä että en lue sinua tuohon "muutama nörtti" ryhmään. Pahoitteluni jos luulit sen piikittelyksi.

LaNu kirjoitti:

Olet saanut "väittelyn" aikaiseksi lukutaidottomuuttasi. Lue ajatuksella uudestaan ennenkö jatkat vittuilua:
https://www.ohjelmointiputka.net/keskustelu/22573-ihme-encoding-error/sivu-1#v181194

En mielestäni ole vittuillut kenellekään eikä tuossa viestissä ollut edes väittelyä vaan yleistä asioiden toteamista. Olen lukenut viestisi ja minusta omassa viestissäni olen lähinnä samaa mieltä sen kanssa.

Muilta osin epäilyt lukutaidottamuudesta ja muun henkilöön menevän kommentoinnin jätän omaan arvoonsa.

The Alchemist [22.05.2011 08:33:24]

#

LaNu kirjoitti:

Grez kirjoitti:

Eli oma tulkintasiko on, että kaikki selaimet toimii väärin kun antavat käyttäjän valita jonkin muun kuin palvelimen kertoman merkistön?

Kyllä, näin. W3C:n speksi sanoo yksikäsitteisesti, mitä merkistöä selaimen pitää käyttää. Muu on luonnollisesti speksin vastaista toimintaa. Eihän siitä mitään haittaa ole kenellekään, että monet selaimet tarjoaa mahdollisuuden kokeilla löytää oikea merkistö rikkinäisellä sivulla. Sillä nyt vaan ei ole speksin kanssa mitään tekemistä.

Miksi sillä pitäisikään olla? W3C:n standardit eivät pakota käyttäjää tekemään tietyllä tavoin. Speksien ja standardien ainoa tarkoitus on yrittää taata universaalisti toimiva internet. Jokainen käyttäjä on vapaa tekemään muutoksia omaan henkilökohtaiseen kokemukseensa siitä.

Jotenkin niin päätöntä kiistellä siitä, miten väärin tehtyjen sivujen kanssa pitäisi menetellä, kun on kylmä fakta, että sellaisten kanssa tulee joka tapauksessa ongelmia.

Tukki [23.05.2011 11:16:33]

#

Grez kirjoitti:

Mutta mitä tulee tuohon että nörtit vs muut, niin kyllähän asioista tietämättömätkin saattaa koodailla xhtml:ää. Varsinkin kun se oli jossain vaiheessa "viimeisin" versio, ja varsinkin asioita tuntemattomat herkästi tykkää käyttää "uusinta versiota", vaikka vanhempi sopisi tarpeeseen paremmin.

Se että nettisivuilla sulkee tagit ja laittaa alkuun xhtml-doctypen (yms. seikat) ei tee sivusta vielä tosiasiallisesti xml:ää siinä mielessä kun se oleellisesti eroaa html:stä. Aika harva harrastelija tarjoilee xhtml:nä tekemiään sivuja application/xhtml+xml -mime-tyypillä, mikä vasta saisi selaimet käsittelemään ne eri tavalla kuin html-sivut. Varmaan suurimpina syinä tähän on että tuo usein vaatii palvelinpään konfigurointia tai ohjelmointia, se saa selaimet virheherkempään tilaan (mm firefox ei näytä virhetilanteessa sivusta mitään) ja ehkä oleellisimpana syynä tavallisilla nettisivuilla siitä ei yleensä ole mitään hyötyä.

Kun sanoin että xml on niiden parin nörtin kieli, tarkoitin xml:ää nimenomaan siinä mielessä kun se oleellisesti eroaa html:stä. Xhtml:n tapauksessa tämä edellyttää erityisesti sivun käsittelelmistä application/xhtml+xml:nä (tai muuna sopivana xml-tyyppinä).

Othnos [23.05.2011 12:31:28]

#

Tukki kirjoitti:

Se että nettisivuilla sulkee tagit ja laittaa alkuun xhtml-doctypen (yms. seikat) ei tee sivusta vielä tosiasiallisesti xml:ää siinä mielessä kun se oleellisesti eroaa html:stä ...

Laitahan niille harvoille harrastelijoille kuten W3C tai W3Schools postia, että käyttäisivät mielummin esim. HTML 4.01, koska sivut eivät oleellisesti eroa html:stä.

Tukki [23.05.2011 13:44:54]

#

Othnos kirjoitti:

Laitahan niille harvoille harrastelijoille kuten W3C tai W3Schools postia, että käyttäisivät mielummin esim. HTML 4.01, koska sivut eivät oleellisesti eroa html:stä.

Voi elämä, miksi ihmeessä laittaisin noille postia? Mikähän edelläkirjoittamani viittaa siihen että noissa sivuissa olisi mielestäni jotain vikaa? Sitäpaitsi ne molemmat tarjoillaan text/html- mime-tyypillä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta