Unicode converter

OP #2715924
Lesenswert?

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?
Gast #2715950
Lesenswert?

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.
Gast #2715955
Lesenswert?

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)
Gast #2715961
Lesenswert?

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...
OP #2715978
Lesenswert?

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.
Gast #2715989
Lesenswert?

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)
Gast #2715992
Lesenswert?

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.
Persönliche Seite #2715998
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren