Re: [despammed] Re: Encoding-Unterschiede 7.4.x <-> 8.0.x?

From: Andreas Seltenreich <seltenreich(at)gmx(dot)de>
To: Andreas Kretschmer <akretschmer(at)despammed(dot)com>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: [despammed] Re: Encoding-Unterschiede 7.4.x <-> 8.0.x?
Date: 2005-06-16 20:16:30
Message-ID: 87fyviukf5.fsf@gate450.dyndns.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Andreas Kretschmer schrob:

> am 16.06.2005, um 19:30:19 +0200 mailte Andreas Seltenreich folgendes:
>> Andreas Kretschmer schrob:
>>
>> > in einer TCL/TK - Anwendung mit PG 7.4.x mußte ich eingegebene Strings
>> > mit convert($var,'UNICODE','LATIN1') im INSERT-Befehl anpassen, unter
>>
>> Hmm, mir ist nicht ganz klar wieso du dieses convert() eigentlich
>> verwendest. Wenn das client_encoding korrekt gesetzt ist, konvertiert
>> postgres doch automatisch für dich zwischen Server- und
>> Client-Encoding, oder?
>
> Das hatte ich gehofft, aber unter 7.4.x klappte das nicht. Daher
> convert() bei INSERTs.

Hmmmm, beim convert() wird IIRC der selbe Mechanismus (pg_conversion)
verwendet, wie auch beim impliziten Konvertieren. Es sollte also seit
Urzeiten (7.0?) beides funktionieren.

>> Btw: Tcl hat ebenfalls sehr umfangreiche I18n (man 3tcl encoding).
>
> Ja, mag sein. Ich bekam halt unter 7.4.x geschrottete Umlaute bei
> INSERTs von Strings. Daher habe ich mit convert() gearbeitet, was eine
> gute & schnelle Lösung war. Das ganze ist nicht allzu groß, das habe ich
> recht schnell im vi geregelt. Erstaunt war ich halt, und wollt wissen,
> ob das 'normal' ist bzw. vielleicht hat ja 7.4.x da ein Bug gehabt, der
> gefixt wurde oder so...

Also in den Release-Notes[1] hab' ich jetzt nichts passendes gefunden.
Deshalb vermute ich eher, daß unter 7.4 etwas falsch konfiguriert war.
Vielleicht ein falsches Server-Encoding?

Oder hat vielleicht tcl 'reingepfuscht? Ich weiß nicht, wieweit du
dich mit tcls encodings befaßt hast, aber da könnte auch einiges
schiefgehen. Je nach locale setzt es z.B. sein "encoding system"
passend, und sendet dann 'mal utf-8 oder 'mal iso-8859-1 an Postgres.
Man müßte also das Encoding für den Postgres-Socket mit fconfigure
festnageln, oder alternativ, abhängig davon, was [encoding system]
liefert, ein "set client_encoding to '[encoding system]'"-Statement
absenden, damit das Skript beim Wechsel des Locales nicht kaputtgeht.

HTH
Andreas

[1] http://www.postgresql.org/docs/8.0/static/release.html

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Tobias Bußmann 2005-06-27 06:51:54 Restore nach pg_dumpall und Reihenfolge
Previous Message Andreas Kretschmer 2005-06-16 17:41:33 Re: [despammed] Re: Encoding-Unterschiede 7.4.x <-> 8.0.x?