kaffeeringe.de

Problemfall Kodierung: iCal und UTF-8 in ISO-Umgebungen

Ich ha­be hier ei­ne Website in ISO-8859-15 und möch­te aus ihr Termine per iCal an­bie­ten. Das soll­te nor­ma­ler­wei­se ge­hen – die rei­ne Angabe des ver­wen­de­ten Charset mach­te aber Probleme. Also mus­st ei­ne an­de­re Lösung her…

UTF–8 soll­te ei­ne Menge ein­fa­cher ma­chen: Waren im ASCII-System nur die Buchstaben vor­ge­se­hen, die der ge­mei­ne Amerikaner in sei­ner Unabhängigkeitserklärung be­nutzt hat, konn­ten die ISO-Standards auch Umlaute – aber eben im­mer nur die ei­ner be­stimm­ten Region der Welt: ISO-8859-15 ent­hält zum Beispiel die Umlaute für West-Europa in­klu­si­ve Euro-Zeichen.

Bisher macht es aber nur al­les kom­pli­zier­ter: Einige Systeme ver­lan­gen schon UTF-8, wäh­rend an­de­re no­ch sehr gut in ISO lau­fen. Schickt man die Daten ein­fach so, kom­men die Umlaute ka­putt an. Will man ei­ne rich­ti­ge Brücke zwi­schen bei­den Welten schla­gen, muss man kon­ver­tie­ren.

In mei­nem Kalender (ISO-8859-15) war ein­fach im iCal-Template bei al­len Angabe da­zu­ge­schrie­ben, dass es si­ch da­bei um ISO han­delt:

LOCATION;CHARSET=ISO-8859-15:Neumünster

Das hat aber nicht ge­reicht – Die Umlaute wur­den im­mer fal­sch im­por­tiert. Auch das set­zen des Headers in PHP hat nicht ge­klappt:

Header("Content-Type: text/calendar; charset=ISO-8859-15");

Also mus­s­te die Radikal-Lösung her: Der ge­sam­te Export wird UTF-8. Ich set­ze al­so den Header:

Header("Content-Type: text/calendar; charset=UTF-8");

Und las­se das Charset aus dem Template raus. Dafür muss ich die Inhalte in PHP durch iconv schi­cken. Im Smarty-Template geht das dann so:

LOCATION:{"ISO-8859-15"|iconv:"UTF-8":$data.location}

Nun funk­tio­niert der Export pri­ma… bis der Web-Kalender auf UTF-8 um­ge­stellt wird…

Kommentare

HiloPe

… macht UTF-8 end­li­ch zum Standard. Wenn al­le da­mit ar­bei­ten, gibt es kei­ne Probleme mehr.

Das ist doch auch end­li­ch mal et­was, wo wir den an­glo­ame­ri­ka­ni­schen Raum über­zeu­gen kön­nen, bzw. die end­li­ch auch mal was von uns über­neh­men (… wo wir doch son­st im­mer de­ren Standards auf­ge­pfropft be­kom­men 😉 ).

Steffen

In Zikula 2.0 soll es ja Standard wer­den – das wird no­ch ein Spaß mit den gan­zen Modulen. Ich ver­mu­te, dass wir da mehr Trouble krie­gen wer­den als mit dem Übergang von Postnuke zu Zikula – al­ler­dings wer­den si­ch die Probleme leich­ter be­he­ben las­sen…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Möchtest Du benachrichtigt werden, wenn Dir hier jemand antwortet?