[C#] TextBox mit Encodings
Verfasst: 16.03.2013, 17:57
Hallo,
ich möchte einen kleinen HTML-Editor für eine Applikation schreiben, der eigentlich nur aus einer ToolBar und einer RichTextBox besteht. RichText nur zwecks Syntax-Highlighting, daher können wir für diesen Fall einfach von einer normalen TextBox ausgehen.
Da die HTML-Dateien, die man damit öffnet nicht alle valide sind und somit auch nicht immer ein Meta-Tag mit dem Encoding enthalten biete ich einfach eine ComboBox mit allen verfügbaren Encodings in der ToolBar an, aus der der Anwender das richtige Encoding wählen kann. Beim Umschalten soll sich nun auch der Inhalt der TextBox entsprechend ändern (z.B. für Windows-1252 ein Ö anzeigen, während es mit einem chinesischen Encoding was anderes oder was fehlerhaftes ist). Das Problem ist nun, dass ich mir die Daten immer weiter vermurkse wenn ich die Encodings umstelle und nur den Inhalt der TextBox als Input und gleichzeitig als Output nehme. Nun hab ich mir überlegt die realen Byte-Daten in einem Buffer zusätzlich zu speichern, damit ich davon ausgehend immer den Text aus dem aktuellen Encoding generiere. Das wäre prinzipiell möglich, allerdings soll man den HTML-Inhalt auch in der TextBox ändern können.
Da kommt dann das Problem ins Spiel. Zum einen müsste ich Buffer und Text synchronisieren, zum anderen würde ich mir meinen Buffer wieder kaputt machen, wenn ein Encoding gewählt wird, welches den eingegebenen Text nicht richtig verarbeiten kann.
Hat da jemand eine Idee wie man das elegant lösen könnte? Mein Ziel ist einfach, dass der Anwender fröhlich rumeditieren kann, das passende Encoding auswählt und am Ende die Datei speichern kann, sodass auch was vernünftiges rauskommt.
BOM und Meta-Tag sind leider keine Option. Die HTML-Dateien können von sonstwo herkommen und müssen auch editierbar sein, wenn sie nicht valide sind. :(
ich möchte einen kleinen HTML-Editor für eine Applikation schreiben, der eigentlich nur aus einer ToolBar und einer RichTextBox besteht. RichText nur zwecks Syntax-Highlighting, daher können wir für diesen Fall einfach von einer normalen TextBox ausgehen.
Da die HTML-Dateien, die man damit öffnet nicht alle valide sind und somit auch nicht immer ein Meta-Tag mit dem Encoding enthalten biete ich einfach eine ComboBox mit allen verfügbaren Encodings in der ToolBar an, aus der der Anwender das richtige Encoding wählen kann. Beim Umschalten soll sich nun auch der Inhalt der TextBox entsprechend ändern (z.B. für Windows-1252 ein Ö anzeigen, während es mit einem chinesischen Encoding was anderes oder was fehlerhaftes ist). Das Problem ist nun, dass ich mir die Daten immer weiter vermurkse wenn ich die Encodings umstelle und nur den Inhalt der TextBox als Input und gleichzeitig als Output nehme. Nun hab ich mir überlegt die realen Byte-Daten in einem Buffer zusätzlich zu speichern, damit ich davon ausgehend immer den Text aus dem aktuellen Encoding generiere. Das wäre prinzipiell möglich, allerdings soll man den HTML-Inhalt auch in der TextBox ändern können.
Da kommt dann das Problem ins Spiel. Zum einen müsste ich Buffer und Text synchronisieren, zum anderen würde ich mir meinen Buffer wieder kaputt machen, wenn ein Encoding gewählt wird, welches den eingegebenen Text nicht richtig verarbeiten kann.
Hat da jemand eine Idee wie man das elegant lösen könnte? Mein Ziel ist einfach, dass der Anwender fröhlich rumeditieren kann, das passende Encoding auswählt und am Ende die Datei speichern kann, sodass auch was vernünftiges rauskommt.
BOM und Meta-Tag sind leider keine Option. Die HTML-Dateien können von sonstwo herkommen und müssen auch editierbar sein, wenn sie nicht valide sind. :(