On Wed, 2008-04-23 at 14:38 +0200, Edwin Buehler wrote: > Am 23.04.2008 um 12:37 schrieb Norbert Hartl: > > > On Wed, 2008-04-23 at 11:26 +0200, Edwin Buehler wrote: > >> Hallo, > >> > >> > >> ich habe ein Problem mit der utf-8 Kodierung in meinem Image. > > > >> > >> Ich habe ein mir neues Image (basierend auf v3.9) aufgebaut mit allen > >> Teilen die ich brauche. Danach habe ich mit Monticello > >> auch meinen Code eingeladen. Zunächst schien es das alle richtig > >> funktioniert. > >> Alle Umlaute werden richtig mit der Seasideapplication auf der > >> Webseite dargestellt. Die Strings kommen dabei entweder aus einer > >> UTF-8 > >> kodierten postgres Datenbank oder aus einer Übersetzungstabelle vom > >> LanguageEditor aber nicht aus. > >> > >> > >> Wenn ich nun aber die Datenbank lösche und die mit GLORP neu erzeugte > >> mit Daten füllen will, dann führen die Umlaute aus dem Smalltalk code > >> zu einer Fehlermeldung von postgres: "ERROR: invalid byte sequence > >> for encoding "UTF8": 0xfc" > >> > >> > >> Ändere ich in meinem neuen Image eine Methode die mir Daten für die > >> DB > >> erzeugt und übertrage meinen Code mit Monticello auf > >> mein altes Images, dann werden die Strings mit Umlauten im Code > >> wieder > >> als utf-8 erkannt. Aber sie werden nicht richtig auf der Webseite > >> angezeigt. > >> > >> > >> Muß ich in meinem Image die Kodierung einstellen ? > >> > >> > >> Im Internet und den Squeaklisten konnte ich nichts zu meinem Problem > >> finden. > >> > > > > Dann hast du mein Posting zu genau diesem Problem nicht gefunden :) > > [1] > > Die ganze Geschichte hat nichts mit der Kodierung in deinem Image zu > > tun, sondern mit den Übergabestellen zwischen Image und der > > Aussenwelt. > > Derer gibt es vier. 1.) aus dem Web 2.) zur Datenbank 3.) von der > > Datenbank und 4.) ins Web. Wenn du WAKomEncoded als Webserver benutzt, > > dann hast du 1.) und 4.) schon erschlagen. Wenn du meine PostgresV2 > > Version benutzt (PostgresV2-noha.8) dann sind 2.) und 3.) auch gefixt. > > Das Entscheidende hier ist nicht, welches Encoding deine Datenbank zur > > Speicherung benutzt, sondern welches Encoding squeak und postgres zur > > Kommunikation untereinander benutzen. > > > > [1] > > http://lists.squeakfoundation.org/pipermail/seaside/2007-May/012120.html > > > > Ich hoffe, das hilft. > > > > Norbert > > > > > > > Danke, > mit PostgresV2-noha.8 funktioniert es wieder. > > Obwohl ich noch nicht verstehe wieso es im alten Image ging und im > neuen nicht. > Ich hatte vor einigen Monaten folgenden Code eingebaut der das > Encoding für den Client > gesetzt hat. Zusammen mit SwazooServer. Hat bisher auch prima > funktioniert. > > MyGlorpDatabase >> connect > .... > encoding := session accessor executeSQLString: 'SHOW CLIENT_ENCODING'. > encoding isEmpty > ifTrue: [ > session accessor connection encoding: #'iso-8859-1'. > session system platform characterEncoding: > #'iso-8859-1'] > ifFalse: [ > session accessor connection connectionArgs > clientEncoding: #utf8. > .... > > Vielleicht finde ich die Ursache ja noch, ansonsten gehts jetzt > erstmal wieder.
Also, das clientEncoding: auf den connectionArgs habe ich schon länger committed. Ich hab heute (bevor ich die Mail schrieb) noch das Stückchen committed, das utf-8 als encoding setzt, wenn kein explizites encoding gesetzt ist. Ansonsten kann ich da wenig zu sagen. Norbert
