• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Ein Blick aus dem Fenster verrät es: Der Lenz ist da. Passenderweise wird auch der Frühling unser Thema für das Foto des Monats. Hier geht es lang --> Klick

Encoding von Text-Dateien: Windows vs OS X

popeye123

Golden Delicious
Registriert
19.01.11
Beiträge
9
Hallo Leute,
ich bin noch ein Mac-Neuling und habe prompt Probleme, die ich mangels Hintergrundwissens nicht verstehe:
Ich arbeite zusammen mit ein paar Kommilitonen an einem c++-Projekt, deswegen tauschen wir öfter .h bzw. .cpp-Dateien aus, die ja im Grunde einfache Textdateien sind. Nun arbeiten meine Kommilitonen mit Windows und speichern sie in Windows ab und schicken es zu mir auf den Mac. Wenn ich diese Dateien nun öffne, fragt er mich erstmal welches Encoding verwendet wurde. Eine riesen Liste, mit der ich nichts anzufangen weiß.
Es wäre toll, wenn mir jemand kurz erklären könnte, was das Encoding ist, warum es sich unterscheidet zwischen Mac und Windows, und wie die jeweiligen Kodierungen heißen, damit ich es richtig auswählen kann.

Vielen Dank
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Nun arbeiten meine Kommilitonen mit Windows und speichern sie in Windows ab und schicken es zu mir auf den Mac. Wenn ich diese Dateien nun öffne, fragt er mich erstmal welches Encoding verwendet wurde.

*Wer* fragt bzw. mit welchem Programm öffnest Du die Dateien? Z.B. Xcode? Eclipse? Irgendein Editor?
In einem Eclipse-Projekt z.B. stellt man einmalig für das gesamte Projekt das Encoding ein und gut is. Dürfte bei Xcode nicht anders sein, weiß ich aber nicht.

Eine riesen Liste, mit der ich nichts anzufangen weiß.
Es wäre toll, wenn mir jemand kurz erklären könnte, was das Encoding ist,
Zeichenkodierung
warum es sich unterscheidet zwischen Mac und Windows,

Historische Gründe / parallele Entwicklungen. Der Zeichensatz unterschied sich ja sogar schon zwischen DOS und Windows. Und auch heute gibt es nicht *die* Mac- und *die* Windows-Zeichenkodierung. UTF-8 z.B. ist auf beiden Plattformen gleichermaßen im Einsatz (wenn auch meist nicht als Default).

und wie die jeweiligen Kodierungen heißen, damit ich es richtig auswählen kann.
Emfpehlenswert für Cross-Plattform-Dokumente (vor allem jedoch für Texte, HTML etc., nicht so wichtig bei Programmlistings): UTF-8.
Default unter Windows: ISO-8859-1, auch bekannt als ISO-Latin-1.

Neben der Zeichenkodierung unterscheidet sich i.d.R. auch die Zeilenumbruchkodierung, aber moderne IDEs sollten Zeilenumbrüche in jeder der gebräuchlichen Kodierungen (CRLF, LFCR, nur LF oder nur CR) erkennen können und gleich behandeln.

SubEthaEdit bietet unabhängig eine Umwandlung der Zeichenkodierung und der Zeilenumbruchkodierung an und erkennt auch inkonsistente Zeilenumbrüche (schlägt dann eine Vereinheitlichung vor). Andere Editoren bieten vermutlich entsprechende Features.


Übrigens: Für C++-Listings ist das Encoding zweitrangig: Die meisten Zeichenkodierungen (von z.B. UTF-16 mal abgesehen) kodieren alle ASCII-Zeichen (des eigentlichen 7-Bit-ASCII-Zeichensatzes) identisch und unterscheiden sich nur in erweiterten Zeichen (wie Umlauten). Da eine Programmiersprache i.d.R. nur ASCII-Zeichen verwendet, spielt die Zeichenkodierung i.W. in Kommentaren und ggf. String-Literalen eine Rolle.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Sowohl Windows als auch OS X beherrschen alle nur vorstellbaren Textkodierungen.
Die (für die Sprache in der wir uns hier unterhalten) bevorzugt verwendeten sind unter Windows:
- "Western / Windows Latin 1" a.k.a. "Codepage ANSI 1252"
- Unicode UTF-8 (mit oder ohne BOM)
- Unicode UTF-16 (mit oder ohne BOM)

Die unter OS X bevorzugten sind:
- Unicode UTF-8 (ohne BOM)
- Unicode UTF-16 (ohne BOM)
- MacRoman

Dazu gibt es noch unter Win und Unix-Systemen unterschiedliche Konventionen zur Markierung von Zeilenenden: CR/LF vs. LF, und bei Unicode-Dateien zusätzlich noch die optionale Möglichkeit eines vorangestellten binären Tags (den BOM, den du im Editor nie sehen kannst).
Ein halbwegs intelligenter Editor erkennt das automatisch - auch das Coding ist oft zu ermitteln bzw zielsicher zu schätzen, manchmal leider aber auch nicht.
Hilfreich ist ein Editor, der alle Kombinationen aus Kodierungen etc beherrscht und der die manuelle Wahl der Interpretation erlaubt, zB der kostenlose TextWrangler (aus dem Mac "App Store" oder bei www.barebones.com)
Hilfreich ist es deine Windows-Spezis mal darum zu bitten, eine Datei mit lediglich folgendem Inhalt zu erstellen:
Code:
Abc123ÄäÖöÜüß§~@
Abc123ÄäÖöÜüß§~@
Abc123ÄäÖöÜüß§~@
Abc123ÄäÖöÜüß§~@
Die öffnest du mit verschiedenen Auswahlen (bevorzugt s.o.) bis sie korrekt aussieht und du weisst Bescheid was deren Programme absondern.