ugrás a tartalomhoz

Karakterkódolás RSS_hez

chronos · 2006. Ápr. 21. (P), 16.44
Hali
Blog motort írtam magamnak, de az RSS/Atom feed résznél megakadtam. PHP file generálja a feed-et, http://valerauko.net/vblog/feed.php a címe (rss 0.91). ha még a végére biggyesztetek egy ?mode=atom-ot akkor az atom verziót írja ki, ?mode=rssverzió (rss091/rss092/rss10/rss20)-ra a megfelelő rss fajtát. az a gondom, hogy a blog többnyelvű, magyar, angol, és alkalmanként még japán tartalmak is lehetnek benne, ezért utf-8 kódolást használnék. viszont az adatbázisban latin2-hungarian-ci összevetés van használva. az adatbázisba beírásnál a php htmlentities()-el minden spec. karaktert (asszem) átjavít &...; formára. amikor kinyerem az adatbázisból, a feed-be html_entity_decode()-dal visszaalakítom a jeleket. a gond az, hogy így nem jelennek meg normálisan, ha meg nem decodeolom őket, akkor az első á-nál (vagy egyéb hasonlónál) XML parse errort ad...
milyen kódolást használjak és hogyan? előre is kösz a segítséget...
 
1

Header

mefi · 2006. Ápr. 21. (P), 17.07
Először is tegyél CDATÁ-t a <description> részhez:
<description><![CDATA[$post ]]></description>
Másodszor a PHP fájl legvégén headerrel azonosítsd a fájlt:
<?php header("Content-Type: text/xml; charset=iso-8859-2"); ?>
2

de...

chronos · 2006. Ápr. 21. (P), 17.36
az iso-8859-2 ki tudja írni a japán karaktereket anélkül h &#...; formába kéne alakítanom őket? az igazi gondom ezzel az ötlettel az, hogy itt a weblabor RSS-feedjei is UTF-8asok, és mégis van bennük ékezetes karakter...
a title-be is lehet rakni <![CDATA[]]>-t?