Elke feed heeft een specifiek karakter codering. Als in de keten van het maken van de feed, het opsturen van de feed, ophalen van de feed, het parsen, het in de database zetten en het uiteindelijk weergeven in joomla iets fout gedaan wordt krijg je rare tekens waar umlauts of andere niet standaard tekens staan.

 

PHP4

Onder php4 is de automatische detectie van de codering door de parser niet goed, dat is een probleem van php en kan niet opgelost worden. Daarom wordt voor php4 de te verwachten codering altijd op UTF-8 gezet. Als de codering van de feed afwijkt (daisycon) (en dan is het meestal ISO-8859-1) moet je dat handmatig instellen in het feeds menu.

Codering CSV Bestanden

CSV bestanden bevatten geen coderings informatie. Hier moet je bij de aanbieder 'ISO-8859-1' als codering van de feed instellen, of ook hier 'Auto encoding' uitzetten en bij 'Encoding' 'UTF-8'

 

 

 

 

Sommige feeds gebruiken de ISO codering in plaats van landennamen.

ISO_3166-1

Op zich is het aanpassen van de codering triviaal. Er van uitgaande dat het land in 'menu_1' staat:

$item['menu_1']=str_replace('ES','Spanje',$item['menu_1'];

en dat dan voor elk land. Het kan simpeler  en goedkoper en beter via een lookup tabel

 

Er zit wel wat addertjes onder het gras, niet alle feeds gebruiken de codering correct. Lastig als de ene feed TU voor Turkije gebruikt en de andere dezelfde code voor Tunesië ( beide incorrect). Sommige feeds gebruiken voor ES voor het vasteland van Spanje en SP voor de eilanden.

 

Het iso2country script maakt deel uit van de component, je roept de functie aan via de callback setting in de feed-configuratie:

 

 

callback