PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie schreibt man ein Programm so, daß es für die Ein+Ausgbae Unicode kann und nutzt?


Gast
2007-11-23, 15:50:22
Gibt es da irgendwelche Regeln was man da beachten sollte?

Gast
2007-11-24, 01:36:54
kommt drauf an was mit der eingabe geschehen soll.
im einfachsten fall liest du einfach byte für byte ein und gibtst das ebenso wieder aus, ohne dich nur im geringsten um das verwendete encoding zu kümmern. komplizierter wirds erst wenn du auch noch strings bearbeiten willst. dafür sollte es aber inzwischen für alle bedeutenden programmiersprachen viele fertige libraries geben, die sich um den ganzen mist kümmern...

Gast
2007-11-24, 11:43:27
Gibt es da irgendwelche Regeln was man da beachten sollte?

Sag doch bitte mal für welche Sprache. Für Java gibt es wenig bis kaum etwas zu beachten, da Java sowieso mit Unicode arbeitet. Bei C++ gibt es für fast jede Funktion Makros, die sowohl ANSI als auch Unicode können.

Gast
2007-11-24, 12:52:47
Die Sprache wäre C und C++.

Xmas
2007-11-24, 14:42:02
Ein- und Ausgabe mit Dateien? Von der Konsole? Mit grafischer Oberfläche? Wenn letzteres, mit welchem OS und GUI-Toolkit?

Gast
2007-11-24, 16:33:16
Ein- und Ausgabe mit Dateien? Von der Konsole? Mit grafischer Oberfläche? Wenn letzteres, mit welchem OS und GUI-Toolkit?

OS = Linux
GUI Toolkit = egal
Konsole = sollte auch möglich sein

Sagen wir einfach ich will einen Texteditor (Konsole und aber auch GUI) schreiben.

Gast
2007-11-24, 17:42:03
OS = Linux
GUI Toolkit = egal
Konsole = sollte auch möglich sein

Sagen wir einfach ich will einen Texteditor (Konsole und aber auch GUI) schreiben.

Oha, nicht gerade einfaches Thema. Noch ein Tipp. Bitte nicht UTF-8 vergessen. Das ist sehr kniffelig, da du eine variable Länge (1-4 Byte) der Zeichen haben kannst. Und nicht vergessen, UNICODE Text-Dateien haben einen BOM Marker am Anfang der Datei. Hier kommt dann auch noch LITTLE ENDIAN und BIG ENDIAN ins Spiel. Wenn der BOM Marker fehlt, sollte der Editor das Encoding natürlich automatisch erkennen. OT: Dann die CR/LF Problematk nicht vergessen.

Hach schön ... Viel Glück beim implementieren. Mich würde sowas aber auch reizen.

Coda
2007-11-24, 17:44:35
Bei UTF-8 ist der BOM allerdings irrelevant, das ist nur bei UTF-16 und UTF-32 wichtig.

Gast
2007-11-24, 18:12:47
Bei UTF-8 ist der BOM allerdings irrelevant, das ist nur bei UTF-16 und UTF-32 wichtig.

Er ist aber trotzdem oft in UTF-8 Dateien enthalten. Also ignorieren würde ich den nicht.

Watson007
2007-11-24, 18:39:22
bei der delphi-vcl brauchst du die tnt-komponenten, da die vcl selbst in der neuesten Version noch nicht unicode-fähig ist. Soll aber bald kommen...

Coda
2007-11-24, 19:27:08
Er ist aber trotzdem oft in UTF-8 Dateien enthalten. Also ignorieren würde ich den nicht.
Man kann ihn aber ignorieren bei UTF-8. Es gibt nur eine Byteorder dafür, die ist auf allen Platformen gleich. Der BOM dient dort nur als Indentifikation eines UTF-8-Dokuments.

Gast
2007-11-24, 19:52:59
Der BOM dient dort nur als Indentifikation eines UTF-8-Dokuments.

Dann sind wir ja einer Meinung ;) Mit dem BOM und der LITTLE/BIGENDAN Problematik bezog ich mich nicht auf UTF-8. Hätte mich vielleicht besser ausdrücken sollen. Bei UTF-8 meinte ich nur das Problem der unterschiedlichen Zeichenlänge.

rotalever
2007-11-25, 12:17:19
Für das Lesen von UTF8 hat man mir mal hier eine schöne Funktion gegeben:
http://www.forum-3dcenter.org/vbulletin/showthread.php?t=372579&highlight=utf-8