[linux-l] Zeichensatz in Textdateien

Volker Grabsch vog at notjusthosting.com
Sa Aug 18 17:37:30 CEST 2007


On Sat, Aug 18, 2007 at 01:24:17PM +0200, David Hansen wrote:
> >> Solch einen Zeichensatz gibt es nicht. Aber UTF-8 ist immer eine
> >> gute Wahl. 
> >
> > Ist UTF-8 nicht bloating in DE, wenn man nur ISO-8859-15 (latin9)
> > braucht? 
> 
> Nur, dass kein Schwein latin-9 benutzt.  Da ist man mit der M$
> Erweiterung von latin-1 schon erfolgreicher.

Naja, dann doch lieber UTF-8. Die paar Prozent mehr Speicherplatz
und Mikrosekunden an verschwendeter Rechenzeit opfere ich gerne
für die Portabilität. "Bloat" ist was anderes.

> UTF-8 ist aber bloat (in Hinsicht auf Speicherbedarf) für die meisten
> nicht Latin-1 kodierbaren Zeichen (z.B. die CJK Zeichen brauchen, glaube
> ich, drei Byte statt den "üblichen" zwei Byte).

Ja, in diesen Sprachen ist UTF-16 geeigneter.

> > Mit UTF ist doch selbst ein strlen plötzlich eine "teure" Funktion,
> > oder?
> 
> Bei einem C string nicht viel teurer, in etwa ein `&' pro Zeichen.  Die
> meisten Editoren oder sonstigen Programme benutzen eh irgendeine interne
> Darstellung auf die du keinen Einfluss hast (was heutzutage wohl meist
> irgendeine Unicode Repräsentation sein dürfte).

Ja, und zwar meist eine mit fester Breite. Klingt verschwenderisch,
aber wieviele Strings werden denn wirklich im Speicher gehalten?
Das meiste liegt doch eh in der Datenbank.

Und die konstante Breite macht dann Operationen wie strlen wieder
genauso schnell. Meist sogar schneller, da die Stringlänge normalerweise
gleich mit gespeichert wird. Kaum eine höhere Sprache, nichtmal das
std::string von C++, verwendet intern C-Strings zur Repräsentation.
Mir fällt da nur noch PHP ein, vielleicht noch Perl.

Lobenswert ist an der Stelle Python mit zwei separaten Klassen für
Byte-Strings und Unicode-Strings. Auch nett ist in dieser Hinsicht
Java, auch wenn's dort leider keine "echten" Byte-Strings gibt, das
java.lang.String ist von vornherein für Unicode gedacht. Naja, da
kann ein Java-Programmierer wenigstens nicht auf dumme Gedanken
kommen. ;-)


Gruß,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l