webForumDet fria alternativet

PHP, RSS, notepad och byte order mark

2 svar · 294 visningar · startad av Blixtsystems

BlixtsystemsMedlem sedan maj 2005713 inlägg
#1

Jag fick ett email från Macromedia att de har försökt lägga till min blog i MXNA men att deras parser har problem med feeden.
De skriver:
"Your feed has the tag "<feff>" at the beginning,
before the XML prolog, which is breaking our parser."

Jag har validerat min feed med feedvalidator.org och det är andra "aggregators" (vad det nu heter på svenska?) som kan parsa den utan problem och den funkar i min feedreader.

Då jag tittar på filen med text editorer och finns det inget skräp före XML deklarationen.
"feff" ser ut som att problemet har att göra med "byte order mark" som tydligen tex notepad lägger till på filer som sparas som UTF-8.
Jag har nu öppnet filen och sparat den som "UTF-8 cookie" med SciTE, vilket skall göra att det inte finns något BOM, och i min hex editor är det nu inget skräp innan "<?xml".
Dum som jag var kollade jag dock inte i hex editorn innan jag sparade över filen, så jag känner mig inte helt säker på att jag verkligen har ändrat något.

Kan PHP på något sätt lägga till BOM i början av filen?
Finns det något sätt att inspektera vad min PHP fil skickar så jag kan se hur den ser ut för en parser?
Om jag helt enkelt öppnar PHP filen med en BOM i början med FF och sparar den till disk så har BOM försvunnit.

Jag är även lite osäker på vad jag skall använda för encoding, dels i XML deklarationen och då jag sparar filen.
Vanligtvis använder jag UTF-8 i XML filer för att se till att åäö fungerar.
Eftersom min blog är på engelska förmodar jag att det egentligen vorde säkrare att köra med ISO-8859-1 och helt enkelt spara den som ANSI i notepad.
SciTE har dock ingen ANSI som val för encoding, men "8-bit" som default, vilket jag förmodar skall vara samma sak.

Många frågor :)
Kanske någon här har svar på någon av dem dock.
Det vorde trist om MM försöker igen och det fortfarande är problem och de kanske bestämmer sig för att inte bry sig om min feed :(

K@llenMedlem sedan mars 20032 654 inlägg
#2

Enligt källkoden på http://blixt.gotdns.com/blixt/feed.php använder du ISO-8859-1. Min RSS-läsare klarar också läsa ditt feed. Testa följande:
http://www.webforum.nu/showthread.php?p=1087406#post1087406

För att säkerställa att servern skickar ut samma encode som du definierat i din fil.

BlixtsystemsMedlem sedan maj 2005713 inlägg
#3

Jag förmodar att problemet inte är relaterat till att den encoding jag specificerar inte stämmer överrens med vad servern skickar. Det borde väl resultera i att icke ANSI tecken visas felaktigt och inte att de ser en "<feff>" tagg i början av dokumentet?

Vad jag kan se fungerar alla mina utf-8 PHP och XML filer som de ska, och problemet är att jag inte kan testa mig fram utom kan bara försäkra mig om att jag har gått 100% korrekt tillväga.

Jag har beslutat mig för att köra med utf-8 och spara filerna utan BOM.
För säkerhets skull skall jag kolla min server konfiguration för att se om jag kan hitta någon inställning för att se till att filerna skickas som utf-8, annars provar jag med .htaccess lösningen du föreslog.

Tyvärr verkar det inte finnas någon feedvalidator som är lika känslig som MM's parser, utan alla jag provat verkar vara kapabla att strippa bort BOM, och jag kan inte hitta någon metod för att själv kunna inspektera resultatet som scriptet genererar med BOM och allt.
W3C's validering brukade tydligen tidigare protestera om dokumentet började med ett BOM, men de anser nuförtiden att en parser skall vara kapablel att strippa bort det.
Jag har dock inte för avsikt att be MM att fixa sin parser :)

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb