CharSetEncoder.

Status
Nicht offen für weitere Antworten.

thE_29

Top Contributor
Hi!

Also ich habe das Internet abgesucht, mich mit Russen unterhalten und ich schaffe es trotzdem net!

Problem: Kyrillische Schriftzeichen in Linux werden in Swing Objekten als arabische Zeichen dargestellt (was sie nicht sollten). Das Programm vom Russen funktioniert zwar, aber 1. versteh ich das Programm net (russisch) und 2. muß ich da immer via Shortcut hin und herswitchen (was ich net will).

Habe jetzt von einem Dänen ein weiteres Bsp gefunden:

http://forum.java.sun.com/thread.jspa?threadID=504392&messageID=2388526#2388526

So, wenn ich das aber mache und das ins ext Verzeichnis stelle, geht es net!!

Und ich weiß nicht warum!


Außerdem versteh ich das net ganz

..Then I added the registered the JAR file with the Java Virtual ma.....

Kann man überhaupt jar Files "registrieren" oder ist das kompletter Blödsinn??


Und falls ja, wie geht das??
 

dotlens

Top Contributor
werden den in Editorer von deinem Linux die Zeichen korrekt dargestellt? könnte ja auch sein, dass das BetriebSystem die Zeichen falsch interpretiert....
 

thE_29

Top Contributor
Also, das mit dem adden habe ich ;)

Habs im falschen ext Verzeichnis gehabt (das kommt davon wenn man 5 JDKs und 2 JREs installiert hat....)


In der Konsole kann es die Kyrillischen Zeichen darstellen, nur in Java Programmen gehts net!
 

thE_29

Top Contributor
Nö, bei dem russischen Programm macht der das irgendwie mit einer eigenen TextDatei und mit hex Codes!

Jedenfalls ist da keine Font dabei, sondern für jeden Buchstaben einen anderen Code!
 

Bleiglanz

Gesperrter Benutzer
was ist konkret das Prob? ein swing JLabel, bei dem du einen String als Text anzeigen lassen willst??

>>TextDatei und mit hex Codes!

was soll das bringen? welche hexCodes? zeichnet der den Glyphen dann mit einer paint-Methode??
 

thE_29

Top Contributor
Am besten ist du testest es mal selber ;)

http://cyrcho.sourceforge.net/

Runterladen und ins <java-home>/jre/lib/ext/cyrcho-06.jar

Dort das laufen lassen und festlegen mit welchem Shortcut das Programm "gestartet" werden soll. (es ist zwar alles russisch, aber einfach nur was auswählen und auf den kleineren Button drücken).

Startet man nun ein Java-Programm mit der gleichen JRE, so kann man wenn man den Shortcut drückt, zwischen den Sprachen auswählen, sagt man dann Cyrill, dann wird in Linux cyrill geschrieben (statt arabisch), ohne das ein zusätzliches Font gebraucht wird!

Nur bräuchte ich das ganze, immer automatisch und ich müßte es noch für die Umwandlungen machen, sprich ich muß bei jeder Swing Komponente dann noch sagen er soll mir das mit dem gewissen Charset decodieren....

Jedenfalls ist die Eingabe, zz mein größeres Problem! (den rest mach ich mit refactoring mit dem this Objekt, geh ich jede JComponent durch und änder den Text, das is net schwer, das hab ich schon gemacht, sodaß man auf jede Komponente rechtsklicken kann und den Text ändern kann... )
 

Bleiglanz

Gesperrter Benutzer
irgendwie weiss ich noch immer nicht was du machen willst?

ein String ist ein String ist ein String, der hat keinen "Charset" oder sowas eingebaut, es geht wohl eher um kyrillische Eingabe auf westlichen Tastaturen?
 

thE_29

Top Contributor
Jo und nein, ich kann es dir nicht erklären solange man es nicht selber ausprobiert!

Fakt ist Java kann keine Kyrillischen Zeichen unter Linux darstellen (in Swing) stattdessen kommen da Arabische Zeichen

Der Russe schafft es irgendwie, diese Zeichen zu ändern (mit ner hashmap) und es kommen statt arabischen Zeichen dann die richtigen (ohne eine andere Font zu nutzen).
 

Bleiglanz

Gesperrter Benutzer
Fakt ist Java kann keine Kyrillischen Zeichen unter Linux darstellen (in Swing) stattdessen kommen da Arabische Zeichen

kann doch gar nicht sein? wenn in deinem string die richtigen chars drin sind, dann würde das ja bedeuten, dass der Font kaputt ist (kann eigentlich nicht sein)

=> würde also vermuten, dass in deinem String die falschen chars drin stecken
 

thE_29

Top Contributor
Wenn ich es von HAND IN EIN JTEXTFIELD eingebe, kann der String net falsch sein!

Glaub mir das es einfach so ist!

Wenn du wo ein Linux bei der Hand hast und dich mit den kxkbrc auskennst kannst du es testn:

in /etc/sysconfig/language

Die Zeile RC_LANG auf RC_LANG="bg_BG" ändern (restart erforderlich)

im /home/deinuser/.kde/share/config/ eine Datei namens kxkbrc mit folgendem Inhalt erstellen:

[$i]

[Layout]
Additional=bg
AdditionalEncodings=ISO8859-5
Encoding=ISO8859-1
Layout=us
Model=pc104
Options=
ResetOldOptions=false
SwitchMode=Global
Test=Test
Use=true
Variants=bg(bds_enhanced)


Dann noch in /home/deinuser/.kde/share/config/kdeglobals

die Werte in [Locale] von Country und Language auf bg ändern und schon hast du neben der Uhr ein Zeichen, wo man raufklicken kann und mittels dem man umschalten kann!

Schaltet man nun von US auf BG und will in eine Swing API was reinschreiben, stehen arabische Zeichen da....

Mit dem jar File was ich geschrieben habe und wenn man noch sagt InputContext.selectInputMethod(new Locale("myCy")) kommt mein Programm an die Reihe (Programm vom Russen optimiert) und übersetzt es in die Kyrillischen Zeichen.


Falls es mal jemand braucht, einfach melden :)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben