ubuntuusers.de

Java probleme mit Sonderzeichen

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

coeps

Avatar von coeps

Anmeldungsdatum:
22. Januar 2006

Beiträge: 20

Hallo zusammen,
ich habe mir heute ein kleines Java-Tool programmiert, welches Notizen aus markiertem Text, per Shortcut, in Evolution einfügt.
Es ist kein Plugin für Evolution, sondern es wird einfach per FileWriter einen neue Notiz in die Speicherdatei von Evolution geschrieben.

Nun hab ich das Problem dass alle Sonderzeichen in der Datei als schwarze Rauten mit Fragezeichen dargestellt werden. Selbiges geschieht dann in Evolution.
Mir ist klar, dass ich ein Zeichensatzproblem habe, allerdings hat google nichst Helfendes ausgespuckt. #

Vieleicht kann jemand helfen.

Mit Dank im Vorraus,
coeps

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Dann habe ich 17 Fragen:

1. Welches encoding nutzt denn Evolution? uft-8 schätze ich.
2. Da wo Du den Text markierst herrscht welches Encoding vor?
z.B. kannst Du in Evolution selbst einen Text mit Umlauten markieren, einfügen, und bekommst dennoch das Symbol für unbekanntes Zeichen?

3. Was sagt Dein FileWriter zu .getEncoding ();?
4- Die Einführung in den Javadocs hast Du gelesen?

Convenience class for writing character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are acceptable. To specify these values yourself, construct an OutputStreamWriter on a FileOutputStream.

coeps

(Themenstarter)
Avatar von coeps

Anmeldungsdatum:
22. Januar 2006

Beiträge: 20

-Evolution ist utf-8
-markiert als utf-8
-in Evolution ist das Markieren und Einfügen von Umlauten möglich.
-filewriter.getencoding(); –> UTF-8
-Javadoc hab ich gelesen.

Zur Info: Text wird markiert. per Shortcut geht ein Swing-Fenster auf, in dem der Markierte Text steht. dort steht er leider auch schon mit falschen Umlauten drin. (sorry das hab ich erst gerade bemerkt, da das hier unscheinbare Quadrate sind).
Ich hoffe ich stell mich nicht zu blöd an: muss ich vielleicht erst den String, den ich schreibe, in ein anderes Charset umwandeln?

PS: ich habe Datei-Arbeit und Streams schon immer abgrundtief gehasst.
Gruß, Coeps

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Kann man das Programm auch ohne Evolution starten?
(hab ich nicht, und will es nicht für die Fehlersuche installieren).

coeps

(Themenstarter)
Avatar von coeps

Anmeldungsdatum:
22. Januar 2006

Beiträge: 20

ich denke ich werde das Problem lösen können. Habe im Netz einen hinweis gelesen, dass ich beim Übersetzen der sources das Encoding mittels javac -encoding xxxxx mitgeben kann. Habe bis Donnerstag wahrscheinlich aber keine Zeit das zu erledigen. Dies scheint auch ein Linuxproblem zu sein, heisst es. Ob das stimmt weiß ich nicht.
Ich melde mich dann auf jeden Fall und werden den Thread abschließen.
Vielen Dank, coeps

dentaku

Avatar von dentaku

Anmeldungsdatum:
31. Januar 2005

Beiträge: 3785

Noch 'n Tipp: wenn Du gar nicht weiter kommst, lese den Text stets in bytes und merke Dir das encoding - so umgehst Du versehentlich interne/automatische falsche Konvertierungen. Java stellt Zeichen intern stets in Unicode dar. Was bringt System.getProperty("file.encoding")?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

coeps hat geschrieben:

ich denke ich werde das Problem lösen können. Habe im Netz einen hinweis gelesen, dass ich beim Übersetzen der sources das Encoding mittels javac -encoding xxxxx mitgeben kann.

Da bin ich Skeptisch.
Das betrifft m.W. nur Sachen wie System.out.print ("Smørebröd"); - also das Encoding für Stringliterale im Quelltext.
Aber probiere es ruhig aus.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

P.S.: Ich habe mir mal selbst ein Tool geschrieben, daß Clipboardinhalte dekoriert, und damit keine Umlautproble - vom Web zu Mousepad, von Konsole zu Web - ...
Ich erinnere mich auch nicht mit Compilerschaltern gearbeitet zu haben.

coeps

(Themenstarter)
Avatar von coeps

Anmeldungsdatum:
22. Januar 2006

Beiträge: 20

das mit den Compilerparametern war Mist. Ich werde einfach die Message aus dem Clipboard erst mal in ein anständiges Format bringen, dann wird das schon hinhauen. Hat auch nen schönen Lerneffekt.
Ich markiere den thread einfach mal als gelöst.
Vielen Dank,
Coeps

Antworten |