XHTML met iso-8859-1 en een euro-teken

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

  • Johnny
  • Registratie: December 2001
  • Laatst online: 24-04 11:10

Johnny

ondergewaardeerde internetguru

Topicstarter
Laat ik beginnen te zeggen dat ik weet dat XML parsers alleen UTF-8 en UTF-16 hoeven te ondersteunen en dat het gebruik van andere character encodings wordt afgeraden.

Maar toch heb ik er een vraag over.

Als ik een XHTML document toch met iso-8859-1 wil gebruiken en laten valideren met een euro-teken er in bij http://validator.w3.org dan lukt dat niet.

De validator kijkt niet naar het mime-type, dus of je het stuurt als text/html of application/xhtml+xml maakt niet uit.

Volgens de specs zou ik met de XML declaratie (eerste regel) kunnen aangeven welke character encoding ik wil gebruiken.

De validator herkent de encoding wel, en alle browers geven het euro-teken weer.

het euro-teken is ingevoerd met ALT+0128 op een Windows computer, en ik heb het ook op een Mac geprobeerd met ALT+Shift+2, beide geven hetzelfde resultaat.

Het gebruik van iso-8859-1 of iso-8859-15 maakt niet uit.

Dus volgens mij is dit valid XHTML, maar volgens de validator niet:

HTML:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="nl">
<head>
<title>character test</title>
</head>
<body>
<p>Het lezen van deze tekst kost € 100.</p>
</body>
</html>

Om zelf te testen kun je deze code in het Validate by Direct Input veld van de validator plakken

Is dit nu valid XHTML of niet?

En ik weet ook dat ik het euro-teken makkelijk kan vervangen door een entity. :P

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • André
  • Registratie: Maart 2002
  • Laatst online: 28-04 11:43

André

Analytics dude

De euro is gewoon onderdeel van die characterset dus IMO is het gewoon valide. En daarbij is het een onderdeel van een stuk data in een paragraaf: en daar valt weinig aan te valideren.

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 24-04 11:26
Als je het mij vraagt dien je de html-entiteit &euro; te gebruiken voor het euro-teken.

  • André
  • Registratie: Maart 2002
  • Laatst online: 28-04 11:43

André

Analytics dude

Ik heb even wat rondgekeken, maar het is dus zo dat de euro als een speciaal karakter wordt gezien

De enige juiste methode voor XHTML is dan ook:

code:
1
&euro; of &#8364; of &#x20AC;

[ Voor 5% gewijzigd door André op 06-10-2005 23:28 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:09

crisp

Devver

Pixelated

Het euro-teken is in ISO-8859-15 niet alt+0128 maar alt+0164, en dat valideerd prima.

Needless to say dat met ISO-8859-1 karaktercode 164 je dit teken oplevert: ¤

Het probleem ligt 'm in windows; de windows codepage 1252 to be exact - daar vallen sommige printable characters in de 128-159 range die in de ISO characterset gereserveerd zijn voor control-characters

[ Voor 66% gewijzigd door crisp op 06-10-2005 23:40 ]

Intentionally left blank


  • André
  • Registratie: Maart 2002
  • Laatst online: 28-04 11:43

André

Analytics dude

Die 0164 werkt hier niet op GoT terwijl GoT ook 8859-15 gebruikt?

/edit:
oke, duidelijk :)

[ Voor 19% gewijzigd door André op 06-10-2005 23:45 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:09

crisp

Devver

Pixelated

André schreef op donderdag 06 oktober 2005 @ 23:35:
Die 0164 werkt hier niet op GoT terwijl GoT ook 8859-15 gebruikt?
Je moet dan ook geen windows gebruiken ;)

must-read: http://www.cs.tut.fi/~jkorpela/chars.html

[ Voor 12% gewijzigd door crisp op 06-10-2005 23:42 ]

Intentionally left blank

Pagina: 1