Forum: PC Hard- und Software Unicode converter


von Michael G. (elektronikfritze)


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?

: Verschoben durch Moderator
von Stefan W. (dl6dx)


Lesenswert?

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

von UR-Schmitt (Gast)


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.

von Michael G. (elektronikfritze)


Lesenswert?

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.

von UR-Schmitt (Gast)


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)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

Selber in c programmieren. Sollte kaum mehr als 100 Zeilen C Code sein.

von Stefan W. (dl6dx)


Lesenswert?

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

von UR-Schmitt (Gast)


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...

von UR-Schmitt (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Michael G. (elektronikfritze)


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.

von abc (Gast)


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)

von Marwin (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Michael G. (elektronikfritze)


Lesenswert?

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?

von Michael G. (elektronikfritze)


Lesenswert?

Hab eine Lösung, geht doch mit Excel. Befehl heist WANDELN.


Danke!!!

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
Noch kein Account? Hier anmelden.