UTF-8 in Grundbuchstaben umsetzen
Hallo,
um eine Auszug aus einer bibliographischen Datenbank in UTF-8 lexikalisch
richtig zu sortieren erstelle ich eine Sortierdatei, in der
sortierrelevante Teile des Satzes einen sog. Sortierkopf bilden. In
diesem Teil des Datensatzes sollen alle UTF-8-Zeichen auf den
Grundbuchstaben bzw. die Grundbuchstabenkombination (ö->oe) reduziert
werden. So kann die Datei anschließend über ein UNIX-sort sortiert werden.
Meine Frage: Gibt es in perl dazu eine vorgefertigte Funktion ähnlich dem
decode?
Christoph
Re: UTF-8 in Grundbuchstaben umsetzen
Christoph Krempe wrote:
>
> um eine Auszug aus einer bibliographischen Datenbank in UTF-8 lexikalisch
> richtig zu sortieren erstelle ich eine Sortierdatei, in der
> sortierrelevante Teile des Satzes einen sog. Sortierkopf bilden. In
> diesem Teil des Datensatzes sollen alle UTF-8-Zeichen auf den
> Grundbuchstaben bzw. die Grundbuchstabenkombination (ö->oe) reduziert
> werden. So kann die Datei anschließend über ein UNIX-sort sortiert werden.
>
> Meine Frage: Gibt es in perl dazu eine vorgefertigte Funktion ähnlich dem
> decode?
$str =~ s/ä/oe/g;
$str =~ s/ö/oe/g;
....
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: UTF-8 in Grundbuchstaben umsetzen
Am Thu, 10 Jan 2008 10:14:31 +0100 schrieb Frank Seitz:
> Christoph Krempe wrote:
>>
>> um eine Auszug aus einer bibliographischen Datenbank in UTF-8
>> lexikalisch richtig zu sortieren erstelle ich eine Sortierdatei, in der
>> sortierrelevante Teile des Satzes einen sog. Sortierkopf bilden. In
>> diesem Teil des Datensatzes sollen alle UTF-8-Zeichen auf den
>> Grundbuchstaben bzw. die Grundbuchstabenkombination (ö->oe) reduziert
>> werden. So kann die Datei anschließend über ein UNIX-sort sortiert
>> werden.
>>
>> Meine Frage: Gibt es in perl dazu eine vorgefertigte Funktion ähnlich
>> dem decode?
>
> $str =~ s/ä/oe/g;
> $str =~ s/ö/oe/g;
> ...
>
> Grüße
> Frank
Das ist mir klar. Nur wollte ich keine eigene Umkodierungstabelle für
sämtliche UTF-8-Zeichen schreiben ...
Christoph
Re: UTF-8 in Grundbuchstaben umsetzen
Hallo,
Christoph Krempe wrote:
> Am Thu, 10 Jan 2008 10:14:31 +0100 schrieb Frank Seitz:
>
>> Christoph Krempe wrote:
>>>
>>> um eine Auszug aus einer bibliographischen Datenbank in UTF-8
>>> lexikalisch richtig zu sortieren erstelle ich eine Sortierdatei, in d=
er
>>> sortierrelevante Teile des Satzes einen sog. Sortierkopf bilden. In
>>> diesem Teil des Datensatzes sollen alle UTF-8-Zeichen auf den
>>> Grundbuchstaben bzw. die Grundbuchstabenkombination (=C3=B6->oe) redu=
ziert
>>> werden. So kann die Datei anschlie=C3=9Fend =C3=BCber ein UNIX-sort s=
ortiert
>>> werden.
>>>
>>> Meine Frage: Gibt es in perl dazu eine vorgefertigte Funktion =C3=A4h=
nlich
>>> dem decode?
>>
>> $str =3D~ s/=C3=A4/oe/g;
>> $str =3D~ s/=C3=B6/oe/g;
>> ...
>>
>> Gr=C3=BC=C3=9Fe
>> Frank
>
> Das ist mir klar. Nur wollte ich keine eigene Umkodierungstabelle f=C3=BC=
r
> s=C3=A4mtliche UTF-8-Zeichen schreiben ...
Du k=C3=B6nntest probieren, mit charnames::viacode den Unicode-Namen zu
bekommen und den mit regexes zu zerlegen. Im Deutschen werden z.B. die
DIARESIS zu einem nachgestellten e. Das ist immer noch ganz sch=C3=B6n vi=
el
Arbeit, aber du kommst zumindest an ASCII-Repr=C3=A4sentationen aller
m=C3=B6glicher Zeichen aus dem asiatischen Raum, die du vermutlich gar ni=
cht
kennst.
Die Frage ist aber, wie weit du mit deinem Ansatz kommst, vielleicht
solltest du dir lieber locale-abh=C3=A4ngige Collates oder Unicode::Colla=
te
anschauen.
Gr=C3=BC=C3=9Fe,
Moritz
--
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/
Re: UTF-8 in Grundbuchstaben umsetzen
Christoph Krempe wrote:
> Meine Frage: Gibt es in perl dazu eine vorgefertigte Funktion ähnlich dem
> decode?
Text::Undiacritic
Wenn Du die deutschen Umlaute umschreiben willst (ö -> oe), musst Du
vorher eine REGEX drüberlassen.
Wie hier im Thread schon erwähnt, halte ich in Deinem Fall
Unicode::Collate für die richtige Lösung.
Helmut Wollmersdorfer
Re: UTF-8 in Grundbuchstaben umsetzen
Helmut Wollmersdorfer <helmut [at] wollmersdorfer.at> writes:
> Christoph Krempe wrote:
>
> > Meine Frage: Gibt es in perl dazu eine vorgefertigte Funktion
> > ähnlich dem decode?
>
> Text::Undiacritic
Alternativ: Text::Unidecode (persönlich schon benutzt),
Text::Unaccent, Text::StripAccents.
Gruß,
Slaven
--
Slaven Rezic - slaven <at> rezic <dot> de
Start a WWW browser - OS independent:
http://user.cs.tu-berlin.de/~eserte/src/perl/WWWBrowser/