Gå til innhold

Æ, Ø og Å i RSS/XML


Anbefalte innlegg

Finner ikke noe forum for RSS (XML) her, så regner med at det går greit å poste her:

 

Jeg har et RSS dokument som inneholder Æ, Ø og Å. Dette blir ikke godkjnet av validatoren. Hvordan skal jeg skrive Æ, Ø og Å?

 

Bruker UTF-8 tegnsett.

 

På forhånd takk.

Lenke til kommentar
Videoannonse
Annonse

Du kan ikke bruke entities i XML uten å definere dem i en modul (etter hva jeg har forstått.) Mao. kan du ikke bruke å osv. Dette er fordi XML ikke har noen forhåndsdefinerte tags eller entities, slik som HTML har.

 

Du kan (og bør) bruke tegnsettet iso-8859-1, det er det eneste jeg har funnet som er kompatibelt med RSS/XML og æ, ø og å.

Lenke til kommentar

Skriver det hele i PHP, og dere kan jo ta en titt på koden min:

 

/* Lager header */
header("Content-Type: text/xml");
header("charset=ISO-8859-1");


/* Lager header */
echo('<?xml version="1.0" encoding="ISO-8859-1" ?>'),("\r\n");
echo('<rss version="2.0 xmlns:dc="http://purl.org/dc/elements/1.1/">'),("\r\n");
echo('<channel>'),("\r\n \r\n");
echo('<title>Grimstad Seiflorening</title>'),("\r\n");
echo('<description>En aktiv seilforening paa Sorlandet</description>'),("\r\n");
echo('<link>http://www.grimstad.seilforening.no/</link>'),("\r\n \r\n");

 

Her er validerings-resultatene for hele fila: Validering

 

Som dere ser fungerer det fremdeles ikke.

Lenke til kommentar

/* Lager header */
header("Content-Type: application/xml");
header("charset=ISO-8859-1");


/* Lager header */
echo('<?xml version="1.0" encoding="ISO-8859-1" ?>'),("\r\n");
echo('<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">'),("\r\n");
echo('<channel>'),("\r\n \r\n");
echo('<title>Grimstad Seiflorening</title>'),("\r\n");
echo('<description>En aktiv seilforening paa Sorlandet</description>'),("\r\n");
echo('<link>http://www.grimstad.seilforening.no/</link>'),("\r\n \r\n");

 

Den skal funke, tror jeg :)

Lenke til kommentar

Nei, nei, nei. Dette funker jo selvfølgelig ikke, pga. headerene du sender.

 

Slik scriptet er der sender den én header med Content-Type og en meningsløs header med et charset. Du må slå sammen disse, slik:

 

header("Content-Type: application/xml; charset=iso-8859-1");

echo('<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Grimstad Seiflorening</title>
<description>En aktiv seilforening på Sørlandet</description>
<link>http://www.grimstad.seilforening.no/</link>');

 

Har også fiksa opp litt på koden din. :thumbup:

 

Edit: fikset riktig content-type.

Endret av lokaltog
Lenke til kommentar
Skal det ikkje funke å skrive ÆØÅ rett i koden ved bruk av UTF-8 ? Meiner eg har lest det en plass, dog aldri testa det sjøl..

 

Deng meg om eg tar feil

Egentlig skal man bruke iso-8859-10, som er det nordiske tegnsettet. Men om man bruker dette får man "obscure character set"-advarsel, og da er eneste mulighet å bruke iso-8859-1-tegnsetter.

Lenke til kommentar
Skal det ikkje funke å skrive ÆØÅ rett i koden ved bruk  av UTF-8 ? Meiner eg har lest det en plass, dog aldri testa det sjøl..

 

Deng meg om eg tar feil

*Deng arve*

Det funker ikke du må bruke ISO-8859-1, testa det akkurat og jeg fikk feilmelding.

Joda, det fungerer helt fint, men du må jo da også skrive inn dokumentet med utf8 charset! Dersom du har en fil som er kodet i utf8 må du også si at denne bruker utf8: eks: http://tholme.mine.nu/utf8-test/rss.testutf8.xml.php

Dersom du har en fil som er kodet i iso-8859-1 må du også anngi dette, slik:

http://tholme.mine.nu/utf8-test/rss.test.xml.php

 

Koden for disse:

iso-8859-1 (denne må lagres med iso-8859-1 i programmet du bruker til å lage php(/rss)-dokumentet ditt.):

<?php
header("Content-Type: application/rss+xml; charset=iso-8859-1");

echo('<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Grimstad Seiflorening</title>
<description>En aktiv seilforening på Sørlandet</description>
<link>http://www.grimstad.seilforening.no/</link>
</channel>
</rss>');

?>

 

Kode for utf8 (denne må lagres med utf8 i programmet du bruker til å lage php(/rss)-dokumentet ditt.):

<?php
header("Content-Type: application/rss+xml; charset=utf-8");

echo('<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Grimstad Seiflorening</title>
<description>En aktiv seilforening på Sørlandet</description>
<link>http://www.grimstad.seilforening.no/</link>
</channel>
</rss>');

?>

 

muffe: Den feilen du har der kommer av at du har & tegnet i urlen. Du må bytte denne med & fordi & brukes til entities i xml.

Endret av mohuhau
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...