Umlaute

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Umlaute

Enno Schwass
Hallo

Ich möchte Auszüge aus einer csv-Textdatei (utf-8) in Seaside  
anzeigen und
habe Probleme bei der Anzeige von Umlauten.

Das Einlesen mittels FileStream readOnlyFileNamed: aFile und das
anschliessende Parsen (findTokens: escapedBy:) funktioniert prima.

Wenn ich aber in renderContentOn: die Daten ausgebe (der Browser  
steht auf utf-8)
sehe ich keine Umlaute. Seltsamerweise erscheinen sie, wenn ich im  
Browser auf
iso-8859-1 wechsle. Dabei war das Original-File utf-8 und in Squeak  
(im Explorer) sehe ich
auch die Umlaute. Muss ich vor der Ausgabe irgendwo noch einmal  
konvertieren?
Brauche ich asWideString? Für die Ausgabe benutze ich html text: myText

Kann jemand helfen?

Frohe Weihnachten
Enno

Reply | Threaded
Open this post in threaded view
|

Re: Umlaute

Stefan Schmiedl
On Mon, 24 Dec 2007 01:11:05 +0100
Enno Schwass <[hidden email]> wrote:

> Wenn ich aber in renderContentOn: die Daten ausgebe (der
> Browser  steht auf utf-8) sehe ich keine Umlaute.

Was behauptet die HTML-Datei, für eine Codierung zu verwenden?

> Seltsamerweise erscheinen sie, wenn ich im  Browser auf
> iso-8859-1 wechsle.

Spricht dafür, dass die Zeichen tatsächlich mit ISO-8859-1
codiert sind. Steht dein Browser auf Automatik oder hast du
eine Codierung fest eingestellt?

> Dabei war das Original-File utf-8 und in
> Squeak  (im Explorer) sehe ich auch die Umlaute. Muss ich vor
> der Ausgabe irgendwo noch einmal  konvertieren?  Brauche ich
> asWideString? Für die Ausgabe benutze ich html text: myText
>

s.
Reply | Threaded
Open this post in threaded view
|

Re: Umlaute

Enno Schwass
Moin

>> Wenn ich aber in renderContentOn: die Daten ausgebe (der
>> Browser  steht auf utf-8) sehe ich keine Umlaute.
> Was behauptet die HTML-Datei, für eine Codierung zu verwenden?

Das steht in der generierten Seite:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8;  
charset=utf-8"/><meta http-equiv="Content-Script-Type" content="text/
javascript"/>

>> Seltsamerweise erscheinen sie, wenn ich im  Browser auf
>> iso-8859-1 wechsle.
> Spricht dafür, dass die Zeichen tatsächlich mit ISO-8859-1
> codiert sind. Steht dein Browser auf Automatik oder hast du
> eine Codierung fest eingestellt?

Firefox auf utf-8, Safari auf Automatik (was auch utf-8 sein sollte)

>> Dabei war das Original-File utf-8 und in
>> Squeak  (im Explorer) sehe ich auch die Umlaute. Muss ich vor
>> der Ausgabe irgendwo noch einmal  konvertieren?  Brauche ich
>> asWideString? Für die Ausgabe benutze ich html text: myText

Also selbst

html text: (WideString fromString: 'ÜÖÄ').

gibt Fragezeichen aus. Ist das nur auf dem Mac so?
Kann das mal jemand unter Windows probieren?

Bis dann
Enno
Reply | Threaded
Open this post in threaded view
|

RE: Umlaute

michaelperscheid
Hallo Enno,

ich vermute du hast den Standard WAKom Webserver laufen. Von daher probier
bitte mal folgendes:

WAKom Stop.
WAKomEncoded39 startOn: 8080. (Oder deinen Port den du spezifiziert hast)

Das sollte beim Web Server das Encoding einschalten.

Mit freundlichen Grüßen
Micha

> -----Ursprüngliche Nachricht-----
> Von: [hidden email] [mailto:squeak-ev-
> [hidden email]] Im Auftrag von Enno Schwass
> Gesendet: Montag, 24. Dezember 2007 09:03
> An: Squeak in Germany / Squeak in Deutschland
> Betreff: Re: [Squeak-ev] Umlaute
>
> Moin
>
> >> Wenn ich aber in renderContentOn: die Daten ausgebe (der
> >> Browser  steht auf utf-8) sehe ich keine Umlaute.
> > Was behauptet die HTML-Datei, für eine Codierung zu verwenden?
>
> Das steht in der generierten Seite:
>
> <meta http-equiv="Content-Type" content="text/html;charset=utf-8;
> charset=utf-8"/><meta http-equiv="Content-Script-Type" content="text/
> javascript"/>
>
> >> Seltsamerweise erscheinen sie, wenn ich im  Browser auf
> >> iso-8859-1 wechsle.
> > Spricht dafür, dass die Zeichen tatsächlich mit ISO-8859-1
> > codiert sind. Steht dein Browser auf Automatik oder hast du
> > eine Codierung fest eingestellt?
>
> Firefox auf utf-8, Safari auf Automatik (was auch utf-8 sein sollte)
>
> >> Dabei war das Original-File utf-8 und in
> >> Squeak  (im Explorer) sehe ich auch die Umlaute. Muss ich vor
> >> der Ausgabe irgendwo noch einmal  konvertieren?  Brauche ich
> >> asWideString? Für die Ausgabe benutze ich html text: myText
>
> Also selbst
>
> html text: (WideString fromString: 'ÜÖÄ').
>
> gibt Fragezeichen aus. Ist das nur auf dem Mac so?
> Kann das mal jemand unter Windows probieren?
>
> Bis dann
> Enno=

Reply | Threaded
Open this post in threaded view
|

Re: Umlaute

Philippe Marschall
In reply to this post by Enno Schwass
2007/12/24, Enno Schwass <[hidden email]>:
> Hallo
>
> Ich möchte Auszüge aus einer csv-Textdatei (utf-8) in Seaside
> anzeigen und
> habe Probleme bei der Anzeige von Umlauten.

Für solche Fragen die Seaside Liste:
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

> Das Einlesen mittels FileStream readOnlyFileNamed: aFile und das
> anschliessende Parsen (findTokens: escapedBy:) funktioniert prima.
>
> Wenn ich aber in renderContentOn: die Daten ausgebe (der Browser
> steht auf utf-8)
> sehe ich keine Umlaute. Seltsamerweise erscheinen sie, wenn ich im
> Browser auf
> iso-8859-1 wechsle. Dabei war das Original-File utf-8 und in Squeak
> (im Explorer) sehe ich
> auch die Umlaute.

Squeak nahm also Konvertierung von utf-8 zu Squeak encoding
automatisch for. Aus dem restlichen Beschreib deines Problems gehe ich
davon aus, das du WAKom und nicht WAKomEncoded(39) verwendest. Mit
WAKomEncoded(39) sollten die Daten im Browser richtig erscheinen.
Welche Version du verwenden musst hängt leider nicht nur von deiner
Squeak version, sondern auf von deiner KomHttpSever version ab.

Wenn du von WAKom auf WAKomEncoded(39) wechselst liefert dir Seaside
alle Strings als Strings mit Squeak encoding (ein character entspriche
einem WideCharacter) erwartet im Gegenzug aber auch, dass du alle
Strings in Squeak encoding lieferst. Das betrifft auch allenfalls
bestehende Daten.

Wenn du das nicht willst und weiter WAKom verwenden willst musst du
die Daten nach utf-8 konvertieren entweder mit:
convertToWithConverter: UTF8TextConverter new
oder auf dem stream
converter: Latin1TextConverter new
(ja das ist richtig, Latin1)

> Muss ich vor der Ausgabe irgendwo noch einmal
> konvertieren?
> Brauche ich asWideString?

#asWideString bringt bei einem Latin1 String rein gar nichts.

> Für die Ausgabe benutze ich html text: myText

Das ist korrekt.

Gruss
Philippe

> Kann jemand helfen?
>
> Frohe Weihnachten
> Enno
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Umlaute

Enno Schwass
In reply to this post by Enno Schwass
Hallo Michael

> ich vermute du hast den Standard WAKom Webserver laufen. Von daher  
> probier
> bitte mal folgendes:
> WAKom Stop.
> WAKomEncoded39 startOn: 8080. (Oder deinen Port den du spezifiziert  
> hast)
> Das sollte beim Web Server das Encoding einschalten.

Sauber. Das passt!

Frohe Weihnachten
Enno
Reply | Threaded
Open this post in threaded view
|

Re: Umlaute

Enno Schwass
In reply to this post by Philippe Marschall
Moin

>> Ich möchte Auszüge aus einer csv-Textdatei (utf-8) in Seaside
>> anzeigen und
>> habe Probleme bei der Anzeige von Umlauten.
> Für solche Fragen die Seaside Liste:
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

Die Liste lese ich zwar, aber Newbie-Fragen sind vielleicht besser hier
aufgehoben.

> Squeak nahm also Konvertierung von utf-8 zu Squeak encoding
> automatisch for. Aus dem restlichen Beschreib deines Problems gehe ich
> davon aus, das du WAKom und nicht WAKomEncoded(39) verwendest. Mit
> WAKomEncoded(39) sollten die Daten im Browser richtig erscheinen.
> Welche Version du verwenden musst hängt leider nicht nur von deiner
> Squeak version, sondern auf von deiner KomHttpSever version ab.
> Wenn du von WAKom auf WAKomEncoded(39) wechselst liefert dir Seaside
> alle Strings als Strings mit Squeak encoding (ein character entspriche
> einem WideCharacter) erwartet im Gegenzug aber auch, dass du alle
> Strings in Squeak encoding lieferst. Das betrifft auch allenfalls
> bestehende Daten.
> Wenn du das nicht willst und weiter WAKom verwenden willst musst du
> die Daten nach utf-8 konvertieren entweder mit:
> convertToWithConverter: UTF8TextConverter new
> oder auf dem stream
> converter: Latin1TextConverter new
> (ja das ist richtig, Latin1)
>> Muss ich vor der Ausgabe irgendwo noch einmal
>> konvertieren?
>> Brauche ich asWideString?
> #asWideString bringt bei einem Latin1 String rein gar nichts.

Wenn ich dich richtig verstehe, ist das interne Squeak-Encoding latin-1.
Das erklärt die Ausgabe. Ich dachte irrtümlich Squeak wurde irgendwann
von MacRoman auf utf-8 umgestellt.

Da es mit WAKomEncoded39 funktioniert, werde ich nicht weiter  
konvertieren.

Besten Dank
Enno
Reply | Threaded
Open this post in threaded view
|

Re: Umlaute

Philippe Marschall
Am 24.12.07 schrieb Enno Schwass <[hidden email]>:

> Moin
>
> >> Ich möchte Auszüge aus einer csv-Textdatei (utf-8) in Seaside
> >> anzeigen und
> >> habe Probleme bei der Anzeige von Umlauten.
> > Für solche Fragen die Seaside Liste:
> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> Die Liste lese ich zwar, aber Newbie-Fragen sind vielleicht besser hier
> aufgehoben.
>
> > Squeak nahm also Konvertierung von utf-8 zu Squeak encoding
> > automatisch for. Aus dem restlichen Beschreib deines Problems gehe ich
> > davon aus, das du WAKom und nicht WAKomEncoded(39) verwendest. Mit
> > WAKomEncoded(39) sollten die Daten im Browser richtig erscheinen.
> > Welche Version du verwenden musst hängt leider nicht nur von deiner
> > Squeak version, sondern auf von deiner KomHttpSever version ab.
> > Wenn du von WAKom auf WAKomEncoded(39) wechselst liefert dir Seaside
> > alle Strings als Strings mit Squeak encoding (ein character entspriche
> > einem WideCharacter) erwartet im Gegenzug aber auch, dass du alle
> > Strings in Squeak encoding lieferst. Das betrifft auch allenfalls
> > bestehende Daten.
> > Wenn du das nicht willst und weiter WAKom verwenden willst musst du
> > die Daten nach utf-8 konvertieren entweder mit:
> > convertToWithConverter: UTF8TextConverter new
> > oder auf dem stream
> > converter: Latin1TextConverter new
> > (ja das ist richtig, Latin1)
> >> Muss ich vor der Ausgabe irgendwo noch einmal
> >> konvertieren?
> >> Brauche ich asWideString?
> > #asWideString bringt bei einem Latin1 String rein gar nichts.
>
> Wenn ich dich richtig verstehe, ist das interne Squeak-Encoding latin-1.

Nein, Squeak ab 3.8 verwendet intern "erweitertes" Unicode. Da Unicode
aber ein superset von Latin1 ist bemerkst du für latin-1 keinen
Unterschied.

> Das erklärt die Ausgabe. Ich dachte irrtümlich Squeak wurde irgendwann
> von MacRoman auf utf-8 umgestellt.

Ja, aber nur für manche "externe" Sachen wie .changes files.

Gruss
Philippe

> Da es mit WAKomEncoded39 funktioniert, werde ich nicht weiter
> konvertieren.
>
> Besten Dank
> Enno