Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

utf code (umlaute)

13 views
Skip to first unread message

Hans Novak

unread,
Sep 11, 2007, 3:21:05 PM9/11/07
to
Hallo,

ich programmiere hauptsächlich unter linux mit eclipse.
Die Anwendung wird aber auch unter windows genutzt.
Was kann ich denn machen, damit Umlaute auf dem client richtig angezeigt
werde, unabhängig vom bs ?

Hans

Message has been deleted

Michael Paap

unread,
Sep 11, 2007, 7:44:32 PM9/11/07
to
Hans Novak wrote:

> Was kann ich denn machen, damit Umlaute auf dem client richtig angezeigt
> werde, unabhängig vom bs ?

Du könntest dein eventuelles Problem genauer schildern. Am besten
berücksichtigst du dabei die Hinweise in http://laeuftnicht.mpaap.de,
besonders den letzten Absatz.

Gruß,
Michael

Stefan Werner

unread,
Sep 12, 2007, 1:09:24 AM9/12/07
to
Hans Novak schrieb:

Strings externalisieren.
Oder den Workspace auf iso-8859-1 einstellen. (Dann gibt es aber wieder
Probleme, wenn das Programm auf einem Mac laufen soll....)

-stef

Hans Novak

unread,
Sep 12, 2007, 3:04:51 AM9/12/07
to
Michael Paap schrieb:

Ich dachte meine Frage wäre eindeutig.
Umlaute des Programmes werden auf meinem Linux Rechner - sofern ich
unter Linux Programmiere - richtig dargestellt.
Starte ich das gleiche Programm unter Windows, werden Umlaute nicht
richtig dargestellt.

Wenn ich unter Windows Eclipse das Programm mit dem unter Windows
vorhandenen Zeichensatz schreibe und laufen lasse, dann stimmen die
Umlaute unter windows, aber wieder nicht mehr wenn ich das Programm
unter Linux laufen lasse.

Das ist wohl KEIN JAVA Problem, aber es muss doch irgendeine Lösung
geben, damit ich unabhängig, unter welchem BS ich schreibe, die Umlaute
in jedem (oder wenigstens unter win / Linux) richtig dargestellt werden.

Hans

Hans Novak

unread,
Sep 12, 2007, 3:05:30 AM9/12/07
to
Stefan Werner schrieb:

hmmm... das wäre zu vernachlässigen.
Gibt es keinen "Zeichencode", der für alle gilt ?

Hans

Bernd Eckenfels

unread,
Sep 12, 2007, 3:11:52 AM9/12/07
to
Hans Novak <rep...@arcor.de> wrote:
> Starte ich das gleiche Programm unter Windows, werden Umlaute nicht
> richtig dargestellt.

Du meinst bei der Ausgabe auf die Console mit System.out?

> Wenn ich unter Windows Eclipse das Programm mit dem unter Windows
> vorhandenen Zeichensatz schreibe und laufen lasse, dann stimmen die
> Umlaute unter windows, aber wieder nicht mehr wenn ich das Programm
> unter Linux laufen lasse.

Meinst du Umlaute im Quelltext? Wenn ja so solltest du UTF-8 oder Latin1
Encoding fuer deine .java files verwenden, dies deinem File Editor und
deinem Compiler mitteilen. Oder du vermeides tsonderzeichen (\0xxxxx
stattdessen). Jedenfalls musst du es angeben und nicht den Platform Default
verwenden.


Gruss
Bernd

Sitting Duck

unread,
Sep 12, 2007, 3:40:09 AM9/12/07
to
Hans Novak schrieb:

> hmmm... das wäre zu vernachlässigen.
> Gibt es keinen "Zeichencode", der für alle gilt ?

Diverse, man muss sich nur einigen. Einstellen kann man das entweder an
der Workspace (*1) oder am Projekt (*2).

Hth

*1)
Aus dem Menu: Window | Preferences, dann General => Workspace => "Text
file encoding"

*2)
Aus dem Menu: Project | Properties, dann Resource "Text file encoding"


Christoph Dahlen

unread,
Sep 12, 2007, 3:47:50 AM9/12/07
to
Hans Novak schrieb:

Du musst wissen, in welchem Encoding Deine Text in die Applikation
gelangen. Nicht nur aus Gründen der Lokalisierung verbietet es sich,
Texte direkt im Quelltext zu vereinbaren. Dort stehen sie nämlich im
Encoding der Entwicklungsplattform.

Besser und richtig: Text auslagern und mit ResourceBundle arbeiten. Die
Texte werden dabei in Textdateien im java.util.Properties Format
gehalten. Daraus ergibt sich die Bedingung, daß sie im ISO-8859-1
Encoding vorliegen müssen. Zeichen, die nicht durch ISO abgedeckt sind,
müssen entsprechend maskiert werden (\uXXXX Notation).

Gruß,

Christoph

Message has been deleted

Hans Novak

unread,
Sep 12, 2007, 4:40:19 AM9/12/07
to
Christoph Dahlen schrieb:

> Du musst wissen, in welchem Encoding Deine Text in die Applikation
> gelangen. Nicht nur aus Gründen der Lokalisierung verbietet es sich,
> Texte direkt im Quelltext zu vereinbaren. Dort stehen sie nämlich im
> Encoding der Entwicklungsplattform.

genau das meinte ich.
Und ja, es ist wohl nicht optimal, Texte in den SourceCode zu schreiben
- ich denke zwar nicht, dass mein PRG in andere Sprachen übersetzt
werden würde, aber dennoch ein richtiger Aspekt.


> Besser und richtig: Text auslagern und mit ResourceBundle arbeiten. Die
> Texte werden dabei in Textdateien im java.util.Properties Format
> gehalten.

gibt es da irgendwo ein einfaches Beispiel, wie man das macht ?

Daraus ergibt sich die Bedingung, daß sie im ISO-8859-1
> Encoding vorliegen müssen. Zeichen, die nicht durch ISO abgedeckt sind,
> müssen entsprechend maskiert werden (\uXXXX Notation).

gibt es irgendwo ein Tabelle, welches Zeichen was ist in der \uxxxx
Notation ?

Hans


Christoph Dahlen

unread,
Sep 12, 2007, 5:43:45 AM9/12/07
to
Hans Novak schrieb:

>> Besser und richtig: Text auslagern und mit ResourceBundle arbeiten. Die
>> Texte werden dabei in Textdateien im java.util.Properties Format
>> gehalten.
>
> gibt es da irgendwo ein einfaches Beispiel, wie man das macht ?

Kann ich Dir geben

messages.properties:
colour=Farbe

messages_en.properties:
colour=Colour

messages_en_us.properties:
colour=Color

Diese drei Dateien müssen parallel zueinander in einem Verzeichnis
liegen. Der sog. "basename" ist "messages".

Der Zugriff erfolgt dann über

ResourceBundle#getBundle(String basename, Locale locale); und
ResourceBundle#getString(String key);

ResourceBundle versucht zunächst die best-passende Variante zu laden,
für LOCALE.UK wäre das z.B. messages_en_uk.properties. Da diese nicht
existiert, wir das Land der Locale ignoriert und nur die Sprache
verwendet, also messages_en.properties. Existiert auch diese nicht, wird
auf das default-Bundle zurückgegriffen, in diesem Falle messages.properties.

> Daraus ergibt sich die Bedingung, daß sie im ISO-8859-1
>> Encoding vorliegen müssen. Zeichen, die nicht durch ISO abgedeckt sind,
>> müssen entsprechend maskiert werden (\uXXXX Notation).
>
> gibt es irgendwo ein Tabelle, welches Zeichen was ist in der \uxxxx
> Notation ?

Bestimmt. Mach ich mir aber keine Gedanken drum. Die Netbeans IDE
liefert sowohl einen komfortablen Editor für ResourceBundle Dateien mit
und kümmert sich auch um die Maskierung, sofern notwendig.

Gruß,

Christoph

Hans Novak

unread,
Sep 12, 2007, 6:00:07 AM9/12/07
to
Christoph Dahlen schrieb:

> ResourceBundle#getBundle(String basename, Locale locale); und
> ResourceBundle#getString(String key);

sehr gut! Werde ich gleich mal ausprobieren.


> Bestimmt. Mach ich mir aber keine Gedanken drum. Die Netbeans IDE
> liefert sowohl einen komfortablen Editor für ResourceBundle Dateien mit
> und kümmert sich auch um die Maskierung, sofern notwendig.

ich weiss... aber ich nutze eclipse.


Hans

Sascha Broich

unread,
Sep 12, 2007, 6:02:49 AM9/12/07
to
On Wed, 12 Sep 2007 12:00:07 +0200, Hans Novak wrote:

> Christoph Dahlen schrieb:


>> Bestimmt. Mach ich mir aber keine Gedanken drum. Die Netbeans IDE
>> liefert sowohl einen komfortablen Editor für ResourceBundle Dateien mit
>> und kümmert sich auch um die Maskierung, sofern notwendig.
>
> ich weiss... aber ich nutze eclipse.

Wie wäre es mit dem Eclipse ResourceBundle Editor?
http://sourceforge.net/projects/eclipse-rbe/


Sascha Broich
--
Er will sie nicht?
Er, will sie nicht?
Er will, sie nicht?
Er will sie, nicht?

Hans Novak

unread,
Sep 12, 2007, 6:18:56 AM9/12/07
to
Christoph Dahlen schrieb:

> Der Zugriff erfolgt dann über
>
> ResourceBundle#getBundle(String basename, Locale locale); und
> ResourceBundle#getString(String key);

bei mir weiss er nichts mit "ResourceBundle" und "Locale" anzufangen.
Brauche ich noch ein Plugin ?

Hans

Sascha Broich

unread,
Sep 12, 2007, 7:25:09 AM9/12/07
to
On Wed, 12 Sep 2007 12:18:56 +0200, Hans Novak wrote:

> bei mir weiss er nichts mit "ResourceBundle" und "Locale" anzufangen.
> Brauche ich noch ein Plugin ?

java.util.ResourceBundle und java.util.Locale gibts seit Java 1.1.

Hans Novak

unread,
Sep 12, 2007, 7:30:04 AM9/12/07
to
Sascha Broich schrieb:

> On Wed, 12 Sep 2007 12:18:56 +0200, Hans Novak wrote:
>
>> bei mir weiss er nichts mit "ResourceBundle" und "Locale" anzufangen.
>> Brauche ich noch ein Plugin ?
>
> java.util.ResourceBundle und java.util.Locale gibts seit Java 1.1.

Ja, sorry, habe ich dann auch gefunden ...
allerdings findet er die resource nicht.

ResourceBundle bundle = ResourceBundle.getBundle("messages");
System.out.println(bundle.getString("exit"));

Ich habe sie im root des Projektes abgelegt - bekomme immer die Meldung


Exception in thread "main" java.util.MissingResourceException: Can't
find bundle for base name messages, locale de_DE
at
java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1508)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1262)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:717)
at de.repcom.osfaktura.aStartups.Test.machWas(Test.java:17)
at de.repcom.osfaktura.aStartups.Test.<init>(Test.java:12)
at de.repcom.osfaktura.aStartups.Test.main(Test.java:9)

muss man in irgendeiner Form den Pfad zu der Datei angeben ?

Hans

Christoph Dahlen

unread,
Sep 12, 2007, 7:45:09 AM9/12/07
to
Hans Novak schrieb:

> allerdings findet er die resource nicht.

> muss man in irgendeiner Form den Pfad zu der Datei angeben ?

Die Properties-Dateien müssen im Classpath liegen und dann auch wie eine
Klasse relativ zum Classpath-Root angesprochen werden.

Beispiel Web-Anwendung

/WEB-INF/classes/my/package/messages.properties


Macht dann

ResourceBundle.getBundle("my.package.messages")

Gruß,

Christoph

Stefan Werner

unread,
Sep 12, 2007, 3:11:29 PM9/12/07
to
Hans Novak schrieb:

> Ich habe sie im root des Projektes abgelegt - bekomme immer die Meldung
>
>
> Exception in thread "main" java.util.MissingResourceException: Can't
> find bundle for base name messages, locale de_DE
> at
> java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1508)
>
> at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1262)
> at java.util.ResourceBundle.getBundle(ResourceBundle.java:717)
> at de.repcom.osfaktura.aStartups.Test.machWas(Test.java:17)
> at de.repcom.osfaktura.aStartups.Test.<init>(Test.java:12)
> at de.repcom.osfaktura.aStartups.Test.main(Test.java:9)
>
> muss man in irgendeiner Form den Pfad zu der Datei angeben ?
>
> Hans

Frage: Wieso lässt Du Dir eigentlich die Arbeit nicht von Eclipse
abnehmen, wenn Du sowieso Eclipse verwendest? (Source->Externalize
Strings) Einfacher geht's doch eigentlich nicht mehr?

-stef

Hans Novak

unread,
Sep 13, 2007, 5:31:15 AM9/13/07
to
Stefan Werner schrieb:

>>
>> muss man in irgendeiner Form den Pfad zu der Datei angeben ?
>>
>> Hans
>
> Frage: Wieso lässt Du Dir eigentlich die Arbeit nicht von Eclipse
> abnehmen, wenn Du sowieso Eclipse verwendest? (Source->Externalize
> Strings) Einfacher geht's doch eigentlich nicht mehr?

oohh... das kannte ich nicht (okok, kenne mich noch nicht so gut aus in
eclipse)

Hans

0 new messages