Hallo! Ich schildere kurz mal mein Problem: In einer bereits bestehnden Steuerung wird ein intelligentes Grafikdisplay verwendet, welches mehrere Zeichensätze beinhaltet. Alle Zeichen werden über den Ascii Code im 8 bit format aufgerufen. Meine Aufgabe: Texte für z.B. Tschechisch einbinden. Folgenden weg habe ich bereits begonnen: Alle Zeichen die im Display ab z.B. 170 hinterlegt sind editiert, um die Sonderzeichen darzustellen. Beispiel: á = 170, Á = 171 usw. Dem Textcode im Programm muß nun der Übersetzte Text hinzugefügt werden. Da entsteht mein Problem: Den Text habe ich in Word bekommen, und muß ihn nun convertiern. Dazu suche ich ein Programm, welches die Zeichen im Unicodeformat in ein anderses ASCII Zeichen umwandeln. Beispiel: kalibrační číslo Die Zeichen č,í, usw. nüssen jetzt durch einen neuen ASCII wert ersetzt werden. Natürlich wird der Text dadurch unlesbar, aber das würde nicht stören. Perfekt währe ein Programm, welches eine editierbare Tabelle zur Übersetzung hat ( aus ... werde ... ), und unbekannte zeichen, die nicht in der Übersetzungstabelle enthalten sind anzeigt oder entfernt. Gibt es sowas? Einen anderen Weg? Einzeln austauschen per Hand ist zu umfangreich. Später sollen auch noch andere Sprachen mit Sonderzeichen eingebunden werden. Habe es schon mit Excel versucht, finde jedoch keine lösung mit den Unicodezeichen. Wenn ich richtig informiert bin, bestehen diese Zeichen aus mehreren charakters. Habt Ihr einen Vorschlag / Lösung?
:
Verschoben durch Moderator
Hi, hast du dir schon GNU recode ( http://directory.fsf.org/wiki/Recode ) angesehen? Grüße Stefan PS: Gerade gesehen: Es gibt noch ein zweites Projekt "uni2ascii": http://directory.fsf.org/wiki/Uni2ascii
Michael Glier schrieb: > Gibt es sowas? Wohl am besten selbst schreiben Da du dir -wenn ich das recht verstehe- einen eigenen 8 Bit Zeichensatz ausdenkst, solltest du für dich selbst den Zeichensatz ordentlich dokumentieren. Michael Glier schrieb: > Dazu suche ich ein Programm, welches die Zeichen im Unicodeformat in ein > anderses ASCII Zeichen umwandeln. Was meinst du mit "im Unicodeformat" Wie sind die Zeichen denn codiert? UTF-8, UTF-16, ...? Wenn das ein PC Programm werden soll, dann einfach eine Tabelle alter Wert - neuer Wert. Als csv datei einlesen und dann dumm Zeichen für Zeichen durchsuchen. Ist auf einem PC schnell genug, zumal die Tabelle ja nicht mehr als 256 Einträge haben kann. Evt kann man sie sortieren und binär suchen. Oder eine Tabelle anlegen in der im Offset der ZielZeichencode steht. Das ist am schnellsten, geht auch für 16 Bit, da wird die Tabelle halt etwas größer.
Super schnelle Antwort! Danke! Hab aber leider kein linux. Oder habe ich was übersehen? Die Besschreibung des Programms würde genau dem entsprechen was ich suche.
Nachtrag: Das ist dein eigentliches Problem: Michael Glier schrieb: > Wenn ich richtig informiert bin, bestehen diese Zeichen aus mehreren > charakters. Solange du nicht weisst in welchem Zeichensatz die Ausgangsdaten codiert sind, ist das ganze Witzlos. Für Unicode sind variabel lange Multibyte Codierungen wie UTF-8 üblich. Schau dir das mal an (Wikipedia)
Michael Glier schrieb: > Wenn ich richtig informiert bin, bestehen diese Zeichen aus mehreren > charakters. Dann meinst Du UTF-8. Word verwendet intern üblicherweise* UTF-16, mit je einem 16-Bit-Wort pro Zeichen. *) Seit Office 97
Michael Glier schrieb: > Hab aber leider kein linux. Oder habe ich was übersehen? Zumindest von recode existieren MS-DOS-Ports. Links finden sich auf http://recode.progiciels-bpi.ca/index.html . Eventuell gibt es auch einen cygwin-Port (dafür müsstest du beim cygwin-Projekt nachsehen). Grüße Stefan
Rufus Τ. Firefly schrieb: > Michael Glier schrieb: >> Wenn ich richtig informiert bin, bestehen diese Zeichen aus mehreren >> charakters. > > Dann meinst Du UTF-8. Word verwendet intern üblicherweise* UTF-16, mit > je einem 16-Bit-Wort pro Zeichen. Ich hoffe aber schon, daß Michael klar ist daß in einem Word Dokument nicht nur der Text steht und er nicht einfach das Dokument lesen und Zeichenweise als Text anzeigen kann. So langsam beschleicht sich mir der Verdacht daß ihm genau das NICHT klar ist...
Uwe schrieb: > Selber in c programmieren. Sollte kaum mehr als 100 Zeilen C Code sein. Ich würde c# oder java vorschlagen, da dort Unicode Unterstützung und das lesen von Dateien mit beliebigem Zeichensatz schon mit dabei ist.
Und ob der Zeichensatz des GLCD irgendeinem üblichen Zeichensatz entspricht, den recode kennt, würde ich erst mal bezweifeln. Bei solchen Sachen kocht doch jeder Hersteller sein eigenes Süppchen.
UR-Schmitt schrieb: > Ich hoffe aber schon, daß Michael klar ist daß in einem Word Dokument > > nicht nur der Text steht und er nicht einfach das Dokument lesen und > > Zeichenweise als Text anzeigen kann. So langsam beschleicht sich mir der > > Verdacht daß ihm genau das NICHT klar ist... Ist mir Klar! Und damit etsteht natürlich ein weiteres Problem. Der übersetzte Text ist nun mal in Word. Daran kann ich nichts ändern. Dadurch lag mein erster gedanke, dies über Excel zu lösen, funktioniert auch, die zeichen in dezimalzahlen zu wandeln und zurück mit z.B. =CODE() oder =ZEICHEN() aber mit diesen Zeichen wie z.B. ř eben nicht. Dadurch habe ich diese Lösung mal zurückgestellt. Vielleicht habe ich auch alles nicht deteilgenung erklärt.
Moin Also es gibt ja verschiedene 8bit zeichensätze. ASCII währe einer, (wobei der ja orginal nur 7 bit hatte) und dann die ISO8859 für mittel Europa die iso8859-1 für ost europa die iso8859-2 .... die unteren 128 zeichen sind fast immer gleich. in den oberen sind dan die unterschiede. zum convertieren: einen vernünfigen text editor verwenden, der kann auch die Codirung einer Text Datei umstellen. bzw in einem anderen format speichern. bzw die board tools von java, die haben ähnliche probleme mit ihren Propertiy dateien (nativ2ascii und wieder zurück. da kann man auch die codepage dann wieder angeben UTF8 nach native und revers nach ISO8859-2)
Rufus Τ. Firefly schrieb: > Dann meinst Du UTF-8. Word verwendet intern üblicherweise* UTF-16, mit > je einem 16-Bit-Wort pro Zeichen. Auch bei UTF-16 besteht nicht jeder Buchstabe zwangsweise aus einem Element. Diese falsche Annahme hat sich leider so weit verbreitet, dass selbst Java jahrelang kein korrektes UTF-16 konnte.
Kopiere mal den Word-Text in die Zwischenablage und füge den in Notepad wieder ein. Bei "Speichern unter" kannst Du verschiedene Codierungen auswählen, neben "ANSI", was dem von "abc" erwähnten 8859-1 entspricht, gibt es noch "Unicode", "Unicode Big Endian" und "UTF-8". Die beiden Unicode-Varianten erzeugen eine Datei mit zwei Byte pro Zeichen, UTF-8 verwendet nur dann mehrere Bytes, wenn das Zeichen außerhalb des ASCII-Zeichensatzes liegt. Damit bist Du erstmal Word und die Word-Dateiformatgemeinheiten los und kannst Dir die erzeugten Dateien mal in einem Hexeditor genauer ansehen, damit Du lernen kannst, zu verstehen, worauf es bei Deiner Aufgabenstellung genau ankommt -- und welche der verschiedenen Codierungsformen Dir dabei am besten hilft.
Hallo Rufus Τ. Firefly, das ist mal eine gute Idee. Werde ich glieich mal machen. Dann könnte man eigentlich mit einem entsprechenden Zeichensatzkonverter weitermachen, oder? Kann mir jemand einen empfehlen, der mit eine einstellbaren Tabelle arbeitet?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.