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. - Edwin |
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 |
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. Das neue Image hatte ich auch nur deshalb erzeugt weil mein changes file fast 32MB groß war und sich auch nicht verkleinern ließ. Nochmals Danke, - Edwin |
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 |
In reply to this post by Edwin Buehler
Am 23. April 2008 11:26 schrieb Edwin Buehler <[hidden email]>:
> 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. Das ist keine Garantie dass alles richtig funktioniert. Zuerst müssen wir das gewünschte Verhalten kennen. Das ist in diesem Fall ob die Strings im image Squeak oder utf-8 encoded sein sollen. Es geht also darum ob für uft-8 Strings von der Datenbank und vom Web eine Dekodierung vorgenommen werden sollte. Gruss Philippe > 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. > > > > > - Edwin |
Free forum by Nabble | Edit this page |