Jag har nyss skapat ett supersimpelt PHP-dokument som fungerar som RSS-feed. Problemet är bara det att alla mina å, ä och ö byts ut mot ?, vilket i sin tur ställer till problem som jag inte riktigt förstår :p Här är mitt försök att validera sidan. Hur rättar jag till det?
RSS-feed
20 svar · 951 visningar · startad av Helmertz
Har du rätt encoding-grej? iso-8859-1 borde du väl ha. Om du använder UTF-8 så kan du väl göra så att scriptet skriver ut å, ä och ö så här:
å å
ä ä
ö ö
Å Å
Ä Ä
Ö Ö
Tror jag. :)
r\ Fixade felen.
Hmm...
å och kompani är inte giltiga "per default" i XML - och de finns inte deklarerade i RSS heller ;)
Du måste helt enkelt se till att du anger den encoding du kör med korrekt... Och vilken det är vete din editor / din applikation ;)
Kör du något annan teckenkodning än UTF-8 måste du ange det i en <?xml?>-deklaration såhär:
<?xml version="1.0" encoding="ISO-8859-1"?>
XML-deklarationen lägger du allra först i filen (utan vare sig mellanslag eller annat före :) )
.. och även om man *får* utelämna <?xml?>-deklarationen om man använder UTF-8, så skadar det inte läsbarheten för dig som mekar med filen att peta in en
<?xml version="1.0" encoding="UTF-8"?>
iallafall ;)
Usch vad jobbigt, det gillades inte det heller. Det finns inget annat sätt att skriva å, ä och ö på?
I UTF-8, hur skriver man å, ä och ö då? Som silfver skrev?
jarvklo, ska man inte använda någon header i PHP när man anger <?xml... ?> då?
Du måste hålla reda på vilken teckenkodning du använder och deklarera den i en <?xml?>-deklaration.
Tips - Du kan inte skriva in <?xml?> direkt eftersom <? tolkas av PHP som en PHP-tagg :)
Kör med echo...
<?
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
?>
Helmertz skrev:
I UTF-8, hur skriver man å, ä och ö då? Som silfver skrev?
Hmm... Du kör PHP... Kolla på http://se.php.net/manual/en/function.utf8-encode.php
jarvklo skrev:
Tips - Du kan inte skriva in <?xml?> direkt eftersom <? tolkas av PHP som en PHP-tagg :)
Kör med echo...<? header("Content-Type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>"; ?>
Det är klart.. :r Problemet är dock kvar!
Fast nu är problemet att du översätter åäö till å och kompani - ta bort den konverteringen och se om det inte blir bättre...
Feedvalidator skrev:
Your feed appears to be encoded as "ISO-8859-1", but your server is reporting "US-ASCII"
Den vägrar ge sig :D
Känns lite kaka-på-kaka, men det löste det problemet, man tackar!
Vet du vad de andra felen beror på?
Yep. Du har glömt att lägga <item> runt varje <title> + <description> + <link> ;)
Sådärja - Nu behöver du bara peta in en <title> + <description> + <link> trojka som beskriver din webbplats/ditt feed mellan starttaggen för <channel> och första <item> ;)
Nu vill validatorn ha det så som jag skrev från början verkar det som.. Grr.. Eller har jag missförstått det du sa?
Hehe - kolla mitt förra inlägg (jag skrev det innan du hann fråga ;) )
Tack så mycket! Du är hygglo du som hjälper en förvirrad ung man.. :P Tro det eller ej men jag läste igenom en anvisning innan.. :r
Helmertz skrev:
Känns lite kaka-på-kaka, men det löste det problemet, man tackar!
Du kan använda application/xml istället för text/xml. :)
NP - Alla anvisningar är inte nödvändigtvis lätta att förstå :)
Som hemläxa får du fundera på att lägga till <pubDate>, <language>, <dc:creator> m.fl också när du ändå är i farten och mekar med din RSS-kanal :e
Skämt åsido - kul att det funkar och lycka till :birp
zcorpan skrev:
Helmertz skrev:
Känns lite kaka-på-kaka, men det löste det problemet, man tackar!
Du kan använda application/xml istället för text/xml. :)
Nu när jag väl fått det att fungera vågar jag knappt ge mig på det :) Fixar alla RSS-läsare den mediatypen?