2009-05-30 4 views

Antwort

2

Danke an alle hilfreichen Ideen.

Es stellt sich heraus, der Schlüssel zu meinem Problem dieser Satz war:

Auf Mac OS X 10.5 mit Java 1.5, ich diesen Code-Schnipsel haben

Die IDE ich benutze IntelliJ IDEA hat die Dateicodierung explizit auf MacRoman festgelegt. Durch Ändern der Codierung für das Projekt in UTF-8 wurde das Problem ohne Codeänderungen gelöst.

5

Hier gibt es zwei mögliche Probleme. Zuerst haben Sie kyrillische Zeichen in Ihrem Quellcode. Das bedeutet, dass Sie sicherstellen müssen, dass die Codierung, die Sie zum Speichern der Datei verwendet haben, mit der des Compilers identisch ist. In der Manpage javac finden Sie Informationen zur Standardcodierung und/oder zur Angabe einer bestimmten Codierung. Oder verwenden Sie Unicode-Escapes innerhalb Ihrer Zeichenfolge.

Die zweite Möglichkeit ist, dass Ihre Terminalschriftart die kyrillischen Zeichen nicht anzeigt. Ich glaube nicht, dass dies passiert, da (1) Sie die Zeichen im Quellcode sehen können und (2) ich glaube, dass fehlende Glyphen als Blöcke rendern, falsche Kodierungen als Fragezeichen rendern.

Um zu testen, ersetzen Sie einfach Ihre Zeichenfolge mit den richtigen Unicode-Escapes, und überprüfen Sie, dass die Zeichen auf dem Bildschirm rendern.

3

Wenn Sie die Console Klasse statt System.out verwenden, und du bist wirklich, wirklich glücklich, Sie MACHT der Lage sein, um die Konsole zu bekommen kyrillischen Zeichen zu drucken.

Im Allgemeinen haben Konsolen keine gute Zeichensatzunterstützung.

Es wäre viel zuverlässiger, Ihre Saite auf andere Weise auszugeben, z. Drucken auf eine Swing-Komponente.

1

Wenn Ihre Zeichenfolge dynamisch von irgendwoher stammt und Sie sicherstellen müssen, dass sie codiert ist, wie Sie benötigen, verwenden Sie einige Klassenkonstruktoren von String, die den Zeichensatztyp als Parameter verwenden, um diese Zeichenfolge zu konvertieren.