# Java macht Probleme mit Umlauten

## mountainflower

Ich hab da ein Java-Programm, das Umlaute enthaelt (jeder Umlaut soll in einem case behandelt werden). Wenn ich das auf meinem Rechner (mit javac im bash) kompilieren will, dann gibt er immer eine Fehlermeldung aus, weil anstelle der Umlaute ploetzlich Fragezeichen stehen. Ich habs dann probiert mit

```
export LANG="de_DE"
```

aber das klappt nicht. Erstaunlicherweise klappt das aber auf meinem Laptop. Ihr muesst mir halt einfach sagen, was Ihr fuer Infos haben wollt, da ich nicht viel Ahnung von Gentoo habe. Bin erst dabei, das alles zu lernen. (Das Gentoo hat jemand fuer mich installiert, das hab ich nicht selber gemacht...)

----------

## franzf

Hi

Welche java-version hast du denn laufen?

```
java -version
```

Bei mir läuft 1.5.0_02, und ich hab (nach export LANG="de_DE" keinerlei Probleme mit Umlauten.

----------

## mathes.s

Hi,

ich hatte so ein Problem mal mit einem Softwareprojekt an der Uni. Hast du die Umlaute im Editor mit den deutschen Umlauttasten eingefügt? Bei uns war dies so, die Umlaute wurden erst richtig angezeigt, als wir sie mit den Unicodezeichen eingaben. Ich weiß leider die genaue Zeichenfolge nicht mehr sollte sich aber per google schnell herraus finden lassen.

mfg Mathes

----------

## mountainflower

 *franzf wrote:*   

> Welche java-version hast du denn laufen? 

 

```
 $ java -version

java version "1.4.2-01"

Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.4.2-01)

Java HotSpot(TM) Client VM (build Blackdown-1.4.2-01, mixed mode)

```

 *mathes.s wrote:*   

> Hast du die Umlaute im Editor mit den deutschen Umlauttasten eingefügt? Bei uns war dies so, die Umlaute wurden erst richtig angezeigt, als wir sie mit den Unicodezeichen eingaben.

 

Ich hab eine US-Tastatur dran, hab aber mal versuchsweise so eingestellt, als obs ne Deutsche waer. Hat auch nicht geklappt. Das mit den Unicodezeichen hab ich auch schon versucht: Weiterer Fehlschlag.

Das komische ist ja, dass es beim Laptop mit den normalen Umlauten laeuft. (Der hat die gleiche Version von Java. Einfach andere Kernel-Sources, aber daran sollte es doch nicht liegen...)

[edit]Hab grad noch sun-jdk (Version 1.4.2.07-r1) ausprobiert - geht aber auch nicht.[/edit]

----------

## TheSmallOne

Möglicherweise erkennt der Compiler das encoding der Source-Datei nicht...

Versuch es mal mit:

```
javac -encoding Latin-1 <datei>
```

oder ähnlichem.Last edited by TheSmallOne on Wed Mar 30, 2005 8:36 pm; edited 1 time in total

----------

## mountainflower

 *TheSmallOne wrote:*   

> Möglicherweise erkennt der Compiler das encoding der Source-Datei nicht...
> 
> Versuch es mal mit:
> 
> [codejavac -encoding Latin-1 <datei>[/code]
> ...

 

Mit dem, wies Du geschrieben hast, hats zwar nicht geklappt, aber dafuer hab ich mit Deinen Tipps bei Google was brauchbares gefunden:

```
javac -encoding iso8859_1 Aufg0501.java
```

Das hat geklappt.

Kann ich das jetzt irgendwie permanent machen, so dass ich das nicht jedesmal eintippen muss?

----------

## mathes.s

Ich weiß nicht aber ich meine bei Eclipse kann man das in den Projekt Einstellungen festlegen. Habe so was meine ich da mal gesehen.

mfg Mathes

----------

## mountainflower

Ja, stimmt! In Eclipse laeuft das Programm jetzt. Einfach in der Konsole muss ich immer noch das -encoding ... eingeben.

Dazu hab ich zwar das hier gefunden:

```
java -Dfile.encoding=YOUR_ENCODING
```

Aber ich weiss halt nicht, in welcher Datei dann was geaendert wird. Kann mir das vielleicht jemand sagen? Oder wie finde ich das raus?

Ausserdem hab ich jetzt grad noch gesehen, dass auch im Firefox die Sonderzeichen als Fragezeichen erscheinen. Aber eben nicht immer... (Grad eben hab ichs beim Portugiesischen gesehen.)

----------

## TheSmallOne

 *mountainflower wrote:*   

> 
> 
> ```
> java -Dfile.encoding=YOUR_ENCODING
> ```
> ...

 

In gar keiner... das Übergibt diese Eigenschaft auf der Kommandozeile... ist nur solange gültig, bis das Programm sich beendet.

Ich würde ja sagen leg' dir einfach einen Alias an.

----------

## franzf

Das Problem im Firefox behebst du, indem du in

Ansicht -> Zeichenkodierung -> Autoerkennung 

die Option "Universal" aktivierts.

So funktionierts zumindest bei mir.

----------

## mathes.s

Hi,

mal nen andere Frage was hast du denn im Kernel als default NLS eingestellt? Ist unter File Systems -> Native Language Support.

Vielleicht kannst du da auch was drehen?

mfg Mathes

----------

## mountainflower

 *mathes.s wrote:*   

> mal nen andere Frage was hast du denn im Kernel als default NLS eingestellt? Ist unter File Systems -> Native Language Support.
> 
> Vielleicht kannst du da auch was drehen? 

 

Da sind die folgenden Einstellungen:

```
(iso8859-1) Default NLS Option

<*>   Codepage 437 (United States, Canada)

<*>   NLS ISO 8859-1  (Latin 1; Western European Languages)
```

Die sollten so doch stimmen, oder?

 *franzf wrote:*   

> Das Problem im Firefox behebst du, indem du in
> 
> Ansicht -> Zeichenkodierung -> Autoerkennung
> 
> die Option "Universal" aktivierts.
> ...

 

Das hab ich natuerlich gleich mal ausprobiert, und tatsaechlich waren die Fragezeichen weg. Aus Neugier hab ichs dann nochmal auf die alte Einstellung gemacht, und jetzt sind da auf einmal die Fragezeichen auch weg... Jetzt hab ich die gleiche Einstellung wie zu Beginn, aber die Fragezeichen sind weg. Hmm...

----------

## mathes.s

Hi,

war mit dem Kernel nur ne Idee, aber ich habe das gleich da wie du also denke ich nicht das daran liegt.

Gibt es vielleicht ne Möglichkeit das Encoding direkt im Qelltext festzulegen? Vielleicht über ne System Property, oder so?

mfg Mathes

----------

## mountainflower

 *mathes.s wrote:*   

> Gibt es vielleicht ne Möglichkeit das Encoding direkt im Qelltext festzulegen? Vielleicht über ne System Property, oder so?

 

Es gibt die Useflags doc und mozilla, wobei ich -doc und +mozilla eingestellt habe. Damit klappts beim Laptop auch.

----------

## mathes.s

Du meinst für den Mozilla, oder? Ich meinte das Ursprüngliche Java Problem.

mfg Mathes

----------

## mountainflower

Die Useflags sind von blackdown-jdk, nicht von Mozilla: 

```
# emerge -pv blackdown-jdk

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild   R   ] dev-java/blackdown-jdk-1.4.2.01-r2  -doc +mozilla 36,756 kB 

Total size of downloads: 36,756 kB
```

(Waer ja ein bisschen komisch, wenn man erwaehnen muesste, dass Mozilla Mozilla unterstuetzt...)

----------

