Moin!
* Wie kann ich erkennen, um was für ein Encoding es sich bei der
Textdatei handelt?
Das Problem ist, dass utf-8 auch genausogut als vollkommen gültiges ASCII oder ISO-8859-1 betrachtet werden kann. Im Prinzip gibt es also nur zwei Möglichkeiten:
1. Du "weißt" es, weil du selbständig eine entsprechende Information über die in der Datei benutzte Zeichencodierungsform irgendwo mitspeicherst. Beispielsweise in einem HTML-Metatag.
2. Du weißt es nicht, und mußt raten.
Methode 2 ist dabei natürlich sehr stark abhängig von der Qualität des Ratemechanismus und insbesondere von den tatsächlichen Daten.
Beispielsweise könnte es sich dann um eine UTF-8-codierte Datei handelt, wenn relativ viele 7-Bit-ASCII-Zeichen vorkommen, und verhältnismäßig viele deutsche UTF-8-Umlaute (erkennbar am charakteristischen Tilde-A). Es kann keine UTF-8-Datei sein, wenn ungültige Bytewerte darin vorkommen.
* Muss ich Perl beim Einlesen sagen, dass da jetzt utf8 kommt, oder
den eingelesenen String dann konvertieren?
UTF-8 bzw. Unicode ist eigentlich der zu bevorzugende Zeichenmodus, da dir in deinen UTF-8-Dateien ja durchaus Zeichen begegnen können, die in einer 8-Bit-Zeichencodierung nicht dargestellt werden können.
* Muss ich beim Schreiben was beachten? In welchem Encoding speichere
ich die Dateien am Besten?
UTF-8.
- Sven Rautenberg