kai: umlautproblem auf dem Mac trotz UTF8 codierung

hallo

ich hab ein kleines tool in php was eine *.csv datei erstellt
und zum download anbietet..
nun soll jemand der auf einem aktuellen mac arbeiten diese csv datei verwenden..
aber bei ihm wurden alle umlaute falsch dargesellt... dann dachte ich
mir ich convertier einfach alles in der csv in utf8 aber das brachte nur andere
neu komische zeichen auf dem mac zum vorschein .. hat jemand ne idee
wie ich das angehen muss ??

danke schonmal
kai

  1. nun soll jemand der auf einem aktuellen mac arbeiten diese csv-datei verwenden..
    aber bei ihm wurden alle umlaute falsch dargesellt... dann dachte ich
    mir ich convertier einfach alles in der csv in utf8

    1. Der Mac arbeitet mit einer Zeichentabelle namens MacRoman, die sich in den Positionen von 128 bis 255 (wo unter anderem die Umlaute untergebracht sind) von der auf den meisten anderen System verbreiteten Tabelle iso-8859-1 (bzw. seiner Windows-Variante windows-1252) unterscheidet.

    2. Du solltest nicht davon ausgehen, dass Du einem Programm einen Haufen Bytes vor die Füße werfen kannst und es dann weiß, welches Zeichen die Nummer 123 nun darstellen soll.

    Um also Deine CSV-Datei in dem Mac-Programm nutzbar zu machen, hast Du vier Möglichkeiten:
    a) Du erzählst dem Mac-Programm, dass die CSV-Datei in iso-8859-1 oder windows-1252 kodiert ist.
    b) Du konvertierst die CSV-Datei von iso-8859-1 oder windows-1252 nach MacRoman (mit der Funktion iconv() oder, falls für iconv-Bibliothek kein MacRoman installiert ist, von Hand mit der Funktion strtr()).
    c) Du konvertierst die CSV-Datei von iso-8859-1 oder windows-1252 nach utf-8 und erzählst dem Mac-Programm, dass die CSV-Datei in utf-8 kodiert ist.
    d) Du verwendest von Anfang an utf-8, also auch intern, und erzählst dem Mac-Programm, dass die CSV-Datei in utf-8 kodiert ist.

    Beachte, dass iso-8859-1 nicht vollständig zu windows-1252 identisch ist, auch wenn es so erscheinen mag. Die PHP-Funktion utf8_encode() akzeptiert aber nur iso-8859-1, für die unfallfreie Konvertierung von windows-1252 nach utf-8, namentlich des Euro- und einiger Anführungszeichen, musst Du iconv() benutzen.

    1. hi,

      danke führ die ausführilche erklährung:
      ABER wie mache ich das:
      'a) Du erzählst dem Mac-Programm, dass die CSV-Datei in iso-8859-1 oder windows-1252 kodiert ist.' ????

      cu
      kai

      1. wie mache ich das:
        'a) Du erzählst dem Mac-Programm, dass die CSV-Datei in iso-8859-1 oder windows-1252 kodiert ist.' ????

        Das kommt auf das Programm an und ist nicht allgemeingültig zu erklären. Wenn nicht irgendwo im Öffnungsdialog (eher) oder den Einstellungen (weniger) der Zeichensatz wählbar ist, dann geht's nicht (was sicher auch der am häufigsten vorkommende Fall ist).

        Ich würde an Deiner Stelle lieber selbst iconv() bemühen als mich auf Programme Dritter zu verlassen, egal ob die Konvertierung Richtung utf-8 oder MacRoman geht. iconv ist erfreulich flexibel, kein Vergleich mit utf8_en-/decode().

      2. Hi,

        ABER wie mache ich das:

        ich kann es Dir nur für TextEdit sagen: dort findest Du in den Einstellungen die Möglichkeit, die Kodierung des zu öffnenden Textes einzustellen.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.