Zeichenkodierung Mac/PC für VCF-Datei

philomatique

Grünschnabel
Zeichenkodierung UTF-8 Mac/PC (speziell für VCF-Datei)

Hallo Leute,

ich habe eine Frage. Ich hab ein Skript gebastelt, was mir aus einer mit UTF-8 codierten XML-Datei eine Adresse ausliest und daraus eine kleine VCF-Datei bastelt. Nichts aufregendes also. Aber ich habe folgende Probleme:

  1. Umlaute (stehen direkt als äöüÄÖÜ in der XML-Datei) werden zwar auf einem XP (jedenfalls in meiner VM :) ) richtig dargestellt, allerdings vermasselt mir der MAC (egal ob Firefox oder Safari) diese völlig. Ich hab schon alle möglichen Kombinationen von ut8_decode/-encode ausprobiert, aber nichts zu machen. :/ Den Dateinamen gibt er mir allerdings absolut korrekt mit Umlauten aus.
  2. Man kann ja leider keine zweite Adresszeile direkt in ein Adressfeld in einer vCard einfügen, aber über einen Zeilenumbruch das ganze zumindest simulieren. :) Wenn ich auf dem Mac also \n in die Zeile einfüge, wird mir schön ein Zeilenumbruch erzeugt. Alles bestens. Der PC mag das überhaupt nicht und ignoriert die zweite Zeile. Ich habe es auch schon mit \r\n und andersrum (man weiß ja nie) probiert. Aber auch hier keine Reaktion.

Hier mal mein Quelltext:

PHP:
$value	 = "BEGIN:VCARD\n";
$value	.= "VERSION:3.0\n";
$value	.= "N;:" . utf8_decode($object->getFullname()) . "\n";
$value	.= "FN:" . utf8_decode($object->getFullname()) . "\n";
$value	.= "ORG:" . utf8_decode("ÄÖÜÖÜÄÜ") . ";\n"; // ; 
$value	.= "EMAIL;type=INTERNET;type=WORK;type=pref:" . utf8_decode($object->getEmail()) . "\n";
$value	.= "TEL;type=WORK;type=pref:" . utf8_decode($object->getPhone_1()) . "\n";
$value	.= "TEL;type=WORK:" . utf8_decode($object->getPhone_2()) . "\n";
$value	.= "TEL;type=WORK;type=CELL:" . utf8_decode($object->getMobile()) . "\n";
$value	.= "TEL;type=WORK;type=FAX:" . utf8_decode($object->getFax()) . "\n";
$value	.= "ADR;type=WORK;type=pref:;;" . utf8_decode($object->getAddressLine_1()) . ($object->getAddressLine_2()!=''?"\n ".utf8_decode($object->getAddressLine_2()):"") . ";" . utf8_decode($object->getCity()) . ";;" . utf8_decode($object->getZip()) . ";\n";
$value	.= "URL;type=pref:http://www.meineseite.de\n";
$value	.= "END:VCARD\n";
		

header('Content-Description: File Transfer');
header('Content-Type: text/x-vcard; charset="UTF-8"');
header('Content-Disposition: attachment; filename="' . utf8_decode($object->getFullname()) . '.vcf"');

Habt Ihr vielleicht Ideen dazu?

Danke und Grüße
Phil
 
Zuletzt bearbeitet:
Zurück