Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Griechische Buchstaben in lateinische konvertieren

1,475 views
Skip to first unread message

Martin Klaiber

unread,
Jan 21, 2007, 9:58:54 AM1/21/07
to
Ich habe griechische Texte in einer mir unverständlichen Kodierung, die
ich in lateinische Zeichen umwandeln will. Es geht mir nicht darum, die
Texte zu übersetzen, sondern nur darum, die griechischen Buchstaben in
lateinischer Schrift zu schreiben. Ich habe hier lokal nur ISO-8859-1
auf einem Linux-Rechner, in welcher Kodierung die Texte mal waren, und
wie sie konvertiert wurden, weiß ich leider nicht.

Beispiele: Statt Sokrates (oder Sokratis) steht in dem Text ÓùêñÜôçò.
Statt Charis steht da: ×Üñéò, und statt Kalimera ÊáëçìÝñá.

Kann mir jemand sagen, was das für eine Zeichensatzkodierung ist? Ich
hatte versucht, es mit

iconv -c -f ISO-8859-7 -t ISO-8859-1 <Datei>

nach latin-1 zu konvertieren, aber das schlägt fehl, die Sonderzeichen
werden nicht erkannt. Inzwischen habe ich begonnen, mir mit tr eine
Übersetzungstabelle zu bauen, aber das ist doch ziemlich aufwendig,
insofern wäre mir eine automatische Konvertierung schon lieber.

Noch eine Anmerkung: ich spreche zwar kein Griechisch, aber dass eine
buchstabengetreue Konvertierung nicht möglich ist, weil z.B. aus dem
griechischen X ein Ch wird und das ai oft als e geschrieben wird, ist
schon klar. Aber das, was da oben steht, hat ja mit den lateinischen
"Ersatzbuchstaben" überhaupt nichts zu tun. Insofern denke ich, dass
mit der Zeichensatzkodierung etwas Grundsätzliches nicht stimmt. Die
Texte sind in Neugriechisch geschrieben.

[fup2 de.comp.standards]

Vielen Dank für Eure Hilfe,
Martin

Philipp Reichmuth

unread,
Jan 21, 2007, 10:19:09 AM1/21/07
to
Martin Klaiber schrieb:
> Beispiele: Statt Sokrates (oder Sokratis) steht in dem Text Σωκράτης.
> Statt Charis steht da: Χάρις, und statt Kalimera Καλημέρα.
>
> Kann mir jemand sagen, was das fόr eine Zeichensatzkodierung ist?

ISO 8859-7.

> Ich hatte versucht, es mit
>
> iconv -c -f ISO-8859-7 -t ISO-8859-1 <Datei>
>

> nach latin-1 zu konvertieren, aber das schlδgt fehl, die Sonderzeichen
> werden nicht erkannt.

Logisch. Wenn iconv auf ein kleines Alpha mit Akzent trifft, weiί es
nicht, wo in ISO 8859-1 es das unterbringen soll.

Vielleicht solltest du statt dessen recode ausprobieren.

Philipp
--
For contacting me via e-mail, please remove ".invalid" from my From:
address.

Helmut Richter

unread,
Jan 21, 2007, 10:31:50 AM1/21/07
to
On Sun, 21 Jan 2007, Martin Klaiber wrote:

> Kann mir jemand sagen, was das für eine Zeichensatzkodierung ist? Ich
> hatte versucht, es mit
>
> iconv -c -f ISO-8859-7 -t ISO-8859-1 <Datei>

Das ist ISO-8859-7. Du kannst es lesen, wenn du es in eine Datei
abspeicherst und die mit einem Browser ansiehst, den du explizit auf
ISO-8859-7 einstellst. Lateinische Schriftzeichen werden da freilich nicht
draus.

> nach latin-1 zu konvertieren, aber das schlägt fehl, die Sonderzeichen
> werden nicht erkannt. Inzwischen habe ich begonnen, mir mit tr eine
> Übersetzungstabelle zu bauen, aber das ist doch ziemlich aufwendig,
> insofern wäre mir eine automatische Konvertierung schon lieber.

Ich habe mir mal solche Tabellen gebaut, allerdings für einen anderen
Zweck, nämlich um Texte im sog. Beta-Code (eine lateinische
Transliteration ohne Rücksicht auf Lesbarkeit) entweder in lateinischer
oder griechischer Schrift anschauen zu können. Deine Richtung ist
umgekehrt, nämlich von ISO-8859-7 weg statt hin, aber vielleicht helfen
dir die Tabellen totzdem was:
http://www.lrz-muenchen.de/~hr/tmp/parallel-utf8 .

--
Helmut Richter

Martin Klaiber

unread,
Jan 21, 2007, 10:25:25 AM1/21/07
to
Philipp Reichmuth <reic...@web.de.invalid> wrote:

> Logisch. Wenn iconv auf ein kleines Alpha mit Akzent trifft, weiß es


> nicht, wo in ISO 8859-1 es das unterbringen soll.

Hm, Du meinst, das kleine alpha steht in ISO-8859-7 an Position 225
(dezimal), doch in ISO-8859-1 steht dort eben das á, insofern kann
da gar kein a bei rauskommen? Das hieße, ich müsste mir doch so eine
Transkriptionstabelle bauen?

> Vielleicht solltest du statt dessen recode ausprobieren.

Hatte ich schon versucht, aber

recode -v -f iso-8859-7 <Datei>

bringt auch kein anderes Ergebnis als iconv.

Martin Klaiber

unread,
Jan 21, 2007, 10:40:09 AM1/21/07
to
Helmut Richter <hh...@web.de> wrote:

> Ich habe mir mal solche Tabellen gebaut, allerdings für einen anderen
> Zweck, nämlich um Texte im sog. Beta-Code (eine lateinische
> Transliteration ohne Rücksicht auf Lesbarkeit) entweder in lateinischer
> oder griechischer Schrift anschauen zu können. Deine Richtung ist
> umgekehrt, nämlich von ISO-8859-7 weg statt hin, aber vielleicht helfen
> dir die Tabellen totzdem was:
> http://www.lrz-muenchen.de/~hr/tmp/parallel-utf8 .

Ja, vielen Dank, das sieht sehr gut aus. Ich schaue mal, ob ich mir
daraus etwas basteln kann.

Christian Weisgerber

unread,
Jan 21, 2007, 12:52:03 PM1/21/07
to
Martin Klaiber <mart...@zedat.fu-berlin.de> wrote:

> Hm, Du meinst, das kleine alpha steht in ISO-8859-7 an Position 225
> (dezimal), doch in ISO-8859-1 steht dort eben das á, insofern kann
> da gar kein a bei rauskommen?

In ISO 8859-1 kommt nirgendwo ein kleines Alpha vor, also kann
iconv(1) die Kodierung nicht anpassen. Ein kleines My dagegen kommt
in beiden vor, 0xEC in 8859-7, 0xB5 in 8859-1, und kann entsprechend
umgesetzt werden. Was du willst, ist aber Transkription, das ist
etwas völlig anderes.

> Das hieße, ich müsste mir doch so eine Transkriptionstabelle bauen?

Ja.
lynx(1) transkribiert mehr oder minder geschickt auf den eingestellten
Ausgabezeichensatz. Bei el.wikipedia.org sieht das dann so aus:

Bikipai'deia, y eleu%thery egkuklopai'deia se o'le*s ti*s glw%sse*s
pou µporei' opoiosdy%pote na epecergastei'.

--
Christian "naddy" Weisgerber na...@mips.inka.de

Ulf Möller

unread,
Jan 21, 2007, 5:18:53 PM1/21/07
to
Martin Klaiber schrieb:

> Beispiele: Statt Sokrates (oder Sokratis) steht in dem Text ÓùêñÜôçò.
> Statt Charis steht da: ×Üñéò, und statt Kalimera ÊáëçìÝñá.

> Kann mir jemand sagen, was das für eine Zeichensatzkodierung ist? Ich
> hatte versucht, es mit
>
> iconv -c -f ISO-8859-7 -t ISO-8859-1 <Datei>
>
> nach latin-1 zu konvertieren, aber das schlägt fehl, die Sonderzeichen
> werden nicht erkannt.

In Latin-1 sind die auch nicht enthalten.

iconv -c -f ISO-8859-7 -t utf-8

ergibt:

Martin Klaiber

unread,
Jan 21, 2007, 6:35:03 PM1/21/07
to
Christian Weisgerber <na...@mips.inka.de> wrote:

> lynx(1) transkribiert mehr oder minder geschickt auf den eingestellten
> Ausgabezeichensatz.

Danke. Ich habe mir aber inzwischen selbst eine Tabelle gebaut. Mit dem
Perl-Quelltext von Helmut kam ich leider nicht klar, da ich so gut wie
kein Perl kann.

In meiner schnell zusammengehackten Tabelle sind sicher noch massig
Fehler, fќr den angestrebten Zweck (Rippen griechischer CDs nach mp3)
reicht es aber. Hier das script, falls es jemanden interessiert oder
gebrauchen kann:

#!/bin/sh
cat $1 | \
/usr/bin/tr ЖИЙКМОПРСТУФХЦЧЩЪЫЬЭЮЯабгдежйклмнопрстуфхцчщъыьэюя№ёђѓєѕіљњћќ§ў AEIIOYOiAVGDEZIIKLMNXOPRSTYFOIYaeiiyavgdeziiklmnxoprsstyfoiyoyo | \
/bin/sed 's/ї/ch/g' | \
/bin/sed 's/з/Ch/g' | \
/bin/sed 's/ш/th/g' | \
/bin/sed 's/Ш/Th/g' | \
/bin/sed 's/ј/ps/g' | \
/bin/sed 's/и/Ps/g' | \
/bin/sed 's/ai/e/g' | \
/bin/sed 's/Ai/E/g' | \
/bin/sed 's/[eo]i/i/g' | \
/bin/sed 's/[EO]i/I/g' | \
/bin/sed 's/\([Oo]\)y/\1u/g' | \
/bin/sed 's/\([AaEe]\)y\([aAeEiIoOuUbBdDgGzZlLmMnNrR]\)/\1v\2/g' | \
/bin/sed 's/\([AaEe]\)y\([a-zA-Z]\)/\1f\2/g' | \
/bin/sed 's/\([AaEe]\)y\([^a-zA-Z]\)/\1u\2/g' | \
/bin/sed 's/\([Yy]\)u/\1i/g' | \
/bin/sed 's/Gg/Ng/g' | \
/bin/sed 's/gg/ng/g' | \
/bin/sed 's/\([a-zA-Z]\)mp\([aAeEiIoOuUbBdDgGzZlLmMnNrR]\)/\1mb\2/g' | \
/bin/sed 's/\([^a-zA-Z]\)mp\([a-zA-Z]\)/\1b\2/g' | \
/bin/sed 's/\([^a-zA-Z]\)M[pP]\([a-zA-Z]\)/\1B\2/g' | \
/bin/sed 's/\([a-zA-Z]\)mp\([^a-zA-Z]\)/\1b\2/g' | \
/bin/sed 's/\([a-zA-Z]\)M[pP]\([^a-zA-Z]\)/\1B\2/g' | \
/bin/sed 's/\([a-zA-Z]\)nt\([aAeEiIoOuUbBdDgGzZlLmMnNrR]\)/\1nd\2/g' | \
/bin/sed 's/\([^a-zA-Z]\)nt\([a-zA-Z]\)/\1d\2/g' | \
/bin/sed 's/\([^a-zA-Z]\)N[tT]\([a-zA-Z]\)/\1D\2/g' | \
/bin/sed 's/\([a-zA-Z]\)nt\([^a-zA-Z]\)/\1d\2/g' | \
/bin/sed 's/\([a-zA-Z]\)N[tT]\([^a-zA-Z]\)/\1D\2/g'

Die vielen sed-Aufrufe kіnnte man natќrlich noch einsparen und alles
in einen Aufruf packen, aber das war mir zu viel Aufwand fќr die paar
CDs. Auпerdem bin ich mir nicht sicher, ob die Berќcksichtung von mp
und nt immer richtig ist (letzte 10 Zeilen), wie gesagt, ich kann kein
Griechisch. Und viele Sonderfфlle fehlen sicher auch noch. Als Vorlage
fќr das script habe ich

<http://de.wikipedia.org/wiki/Wikipedia:Namenskonventionen/Neugriechisch#Transkriptionstabellen>

benutzt.

Danke an alle fќr die hilfreichen Tips,
Martin

Simon Krahnke

unread,
Jan 21, 2007, 7:12:53 PM1/21/07
to
* Martin Klaiber <mart...@zedat.fu-berlin.de> (00:35) schrieb:

> Die vielen sed-Aufrufe könnte man natürlich noch einsparen und alles
> in einen Aufruf packen, aber das war mir zu viel Aufwand für die paar
> CDs.

Äh, du kannst du das ganze in ein sed-Skript packen.

mfg, simon .... l

Martin Klaiber

unread,
Jan 21, 2007, 7:45:51 PM1/21/07
to
Simon Krahnke <over...@gmx.li> wrote:

> Äh, du kannst du das ganze in ein sed-Skript packen.

Ja, ich weiß, ging irgendwie mit sed -e, oder so, aber die genaue
Syntax wusste ich nicht mehr. Und das Ganze hatte mich schon mehr
Zeit gekostet, als mir eigentlich lieb war, deshalb wollte ich mich
nicht noch lange mit der manpage beschäftigen. Ich muss die CDs ja
auch noch rippen, das soll eigentlich Montag früh fertig sein, naja,
so wird es halt wieder eine etwas längere Nacht...

Andreas Hofeld

unread,
Jan 25, 2007, 10:33:34 AM1/25/07
to
"Martin Klaiber" <mart...@zedat.fu-berlin.de> schrieb:
> Ich habe griechische Texte in einer mir unverstδndlichen Kodierung, die

> ich in lateinische Zeichen umwandeln will. Es geht mir nicht darum, die
> Texte zu όbersetzen, sondern nur darum, die griechischen Buchstaben in

> lateinischer Schrift zu schreiben. Ich habe hier lokal nur ISO-8859-1
> auf einem Linux-Rechner, in welcher Kodierung die Texte mal waren, und
> wie sie konvertiert wurden, weiί ich leider nicht.

>
> Beispiele: Statt Sokrates (oder Sokratis) steht in dem Text Σωκράτης.
> Statt Charis steht da: Χάρις, und statt Kalimera Καλημέρα.
>
> Kann mir jemand sagen, was das fόr eine Zeichensatzkodierung ist? Ich

> hatte versucht, es mit
>
> iconv -c -f ISO-8859-7 -t ISO-8859-1 <Datei>

Jetzt besser?

Andreas

Otto Stolz

unread,
Jun 8, 2007, 10:44:13 AM6/8/07
to Martin Klaiber
Martin Klaiber schrieb:

> Beispiele: Statt Sokrates (oder Sokratis) steht in dem Text ÓùêñÜôçò.
> Statt Charis steht da: ×Üñéò, und statt Kalimera ÊáëçìÝñá.
>
> Kann mir jemand sagen, was das für eine Zeichensatzkodierung ist?

ISO 8859-7, siehe
<http://www.unicodecharacter.com/charsets/iso8859.html#ISO-8859-7>;
die übermittelten Bytes sind gemäß ISO 8859-1 oder ISO 8859-15
interpretiert. Vgl. dazu
<http://www.systems.uni-konstanz.de/Otto/Vortrag/Charset/Unicode-Grundlagen.html#C-Mojibake>.

> Ich hatte versucht, es mit
> iconv -c -f ISO-8859-7 -t ISO-8859-1 <Datei>
> nach latin-1 zu konvertieren, aber das schlägt fehl, die Sonderzeichen
> werden nicht erkannt.

Was soll denn iconv da machen? Im Zielcode ISO-8859-1 gibt's nun mal
keine griechischen Zeichen.

Gruß,
Otto Stolz

Andreas Prilop

unread,
Jun 8, 2007, 11:34:38 AM6/8/07
to
On Fri, 8 Jun 2007, Otto Stolz wrote:

> References: <embc84-...@martinkl.dialup.fu-berlin.de>

Mais où sont les neiges d’antan ?

--
In memoriam Alan J. Flavell
http://groups.google.com/groups/search?q=author:Alan.J.Flavell

0 new messages