UTF-8 in Grundbuchstaben umsetzen
UTF-8 in Grundbuchstaben umsetzen
am 10.01.2008 09:55:03 von Christoph Krempe
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
am 10.01.2008 10:14:31 von 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
--
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 10.01.2008 11:07:10 von Christoph Krempe
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
am 10.01.2008 11:25:13 von Moritz Lenz
Hallo,
Christoph Krempe wrote:
> Am Thu, 10 Jan 2008 10:14:31 +0100 schrieb Frank Seitz:
>=20
>> Christoph Krempe wrote:
>>>=20
>>> 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 (ö->oe) redu=
ziert
>>> werden. So kann die Datei anschlieÃend über ein UNIX-sort s=
ortiert
>>> werden.
>>>=20
>>> Meine Frage: Gibt es in perl dazu eine vorgefertigte Funktion äh=
nlich
>>> dem decode?
>>=20
>> $str =3D~ s/ä/oe/g;
>> $str =3D~ s/ö/oe/g;
>> ...
>>=20
>> GrüÃe
>> Frank
>=20
> Das ist mir klar. Nur wollte ich keine eigene Umkodierungstabelle fü=
r=20
> sämtliche UTF-8-Zeichen schreiben ...
Du könntest 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ön vi=
el
Arbeit, aber du kommst zumindest an ASCII-Repräsentationen aller
möglicher 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ängige Collates oder Unicode::Colla=
te
anschauen.
GrüÃe,
Moritz
--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/
Re: UTF-8 in Grundbuchstaben umsetzen
am 13.01.2008 23:43:33 von Helmut Wollmersdorfer
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
am 14.01.2008 10:08:16 von Slaven Rezic
Helmut Wollmersdorfer 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 rezic de
Start a WWW browser - OS independent:
http://user.cs.tu-berlin.de/~eserte/src/perl/WWWBrowser/