Juergen wrote:Wie kann ein Text zugleich beide Formate haben?
Ohne jetzt die Formate voll im Griff zu haben, kann ich Dir folgendes dazu sagen:
UTF-8, Unicode, Nur Text - sind jeweils Formate, wie der Text und bestimmte Sonderzeichen abgelegt werden. Unter DOS wurde ein ASCII-Zeichen in einem Byte codiert. Mit Unicode wurde der Zeichnesatz erheblich erweitert, so dass die 256 in einem Byte möglcihen Zeichen nicht mehr ausreichen. Daher werden für jedes Zeichen 2 Byte benutzt (65535 mögliche Zeichen). Nun muss ich aber wissen, ob in einem Text der Buchstabe "A" durch den Wert 65 = Bin 1000 0001 repräsentiert wird oder durch 0065= Bin 0000 0000 1000 0001. Und wenn ich das richtig sehe, werden bei UTF-8 die Sonderzeichen speziell dargestellt, und zwar folgt nach einem bestimmten Steuerzeichen das Sonderzeichen in 2 Byte codiert, so dass normale Zeichen ein Byte lang sind, Sonderzeichen aber 3 Byte.
Wenn man einen gewöhnlichen Text ansieht, der zum Beispiel ä,ö oder ü enthält und diesen dann als UTF-( anzeigen lässt, so werden diese ä,ö und ü in ein nicht darstellbares Sonderzeichen umgewandelt, und die jeweils beiden nachfolgenden Buchstaben werden verschluckt.
ASCII/ANSI sind lediglich zwei verschieden Interpretationen der einzelnen Zeichen.
Da in den einzelnen Sprachen unterschiedliche Zeichen benutzt werden, gibt es für jede Sprache eine sogenannte Codeseite, in der die Zuordnung der 256 Zeichencodes zu den tatsächliche benutzen Zeichen festgelegt ist. Prominentestes Beispiel dafür ist der Tastaturtreiber, der geladen wird, wenn man den PC bootet und ins BIOS möchte. Da sind dann nämlich bekannterweise z mit y vertauscht, und man findet weder "" noch ""/" und der Doppelpunkt erscheint wenn man "ö" drückt.
Unter Windows wird nun gern ANSI benutz, was aber mit dem DOS Zeichensatz nicht übereinstimmt. Wie man jetzt zu ANSI kam übersteigt meine geschichtlichen Kenntnisse.

Aber auf jeden Fall werden hier die Ös und Üs anders dargestellt als unter ASCII.
Somit liest der Lister erst mal den Text ein und interpretiert die Zeichen als 1, 2 oder 1/3 Byte pro Zeichen und wenn er damit fertig ist, wird jedem Zeichencode ein Zeichen aus dem entsprechenden Zeichensatz zugeordnet.
Der Lister versucht automatisch herauszufinden, um was für einen Text es sich handelt, kann dies aber nicht immer feststellen. Wenn man deshalb einen Text nixht richtig lesen kann, darf man einfach manuell mal die Codierung umstellen. Wenn man dann eine lesbare Darstellung bekommt, hat man gewonnen.
Man kann übrigens im Lister unter Konfigurieren auch noch für ANSI und ASCII unterschiedlich Fonts einstellen.
Code: Select all
Die Speicherung und Übertragung von Unicode erfolgt in unterschiedlichen Formaten:
- UTF-8
- UTF-16
- SCSU
- UTF-EBCDIC
...
Quelle:
http://de.wikipedia.org/wiki/Unicode
D.h. ein eigentliches Format "Unicode" gibt es gar nicht, oder wie? Wofür steht dann der Menüeintrag "Unicode" im Lister?
Doch, natürlich gibt es ein eigentliches Unicode-Format. Aber wenn ich einen deustchen oder englischen Text schreibe und den im Unicode Format speichere, dann besteht der zu beinahe 50% aus Nullen. Also ein Text mit 1000 Zeichen ist 2000 Bytes lang. Darin sind 10 Sonderzeichen (äöü) enthalten, der Rest ist Standard und ließe sich mit ASCII darstellen. Also beutze ich den oben geschilderten Trick und codiere die 10 Sonderzeichen mit jeweils 3 Byte (=30 Byte) und den Rest als ASCII mit 1 Byte (990). Somit habe ich den gleichen Text in 1020 Bytes gespeichert.
Und die Herren Ebdic und SCSU habe sich da halt einen anderen Trick ausgedacht (UTF -16 ist, glaube ich die Speicherung mit allen Nullen).
Und woher weiß ich eigentlich, welches Format eine gegebene Textdatei "wirklich" hat. D.h. gibt es ein allgemein anerkanntes Referenzprogramm zur Ermittlung des Formates?
Eigentlich musst Du Dir das vom Ersteller des Textes sagen lassen. Und wenn DU Dich mit den Formaten beschäftigt hast, dann aknnst Du das auch nach Analyes des Textes herausbekommen (wenn der Urheber sich an die Standards gehalten hat). Aber wie gesagt, sieh Dir einen TExt im Lister an und schlate die entsprechenden Optionen ein oder aus. Es wird Dir in der Regel nur eine Einstellung einen Komplett lesbaren TExt liefern.
sheepdog
Gruß, Jürgen[/quote]k