Sziasztok.
Hátha valaki tudja a megoldást..
A problémám, hogy java-ban (swing) Linux alatt, nem minden Unicode karakter jelenik meg.
Amit eddig kinyomoztam:
- a Java unicode támogatása smafu, mert se a sun-os se a diszto-s csomagok nincsennek bekonfigurálva,
hogy unicode-s font készletet (unifont) használjon (linux alatt)
- a SUN oldalán eljutottam a "fontconfig.properties" fájl leírásáig, de nem sikerült vele rávenne a jre-t
hogy használja is a beállított fontot
A legfőbb probléma, hogy "kívülről" kell beállítanom az alkalmazás által használt fontot.
Megoldas:
A fontconfig.properties fajl szerkesztese a megoldas.. csak ne legy akkora okor mint en, hogy
a font path-ba egy betuvel tobbet irsz bele.:)
- 1408 megtekintés
Hozzászólások
Én még csak most tanulom a java-t, de épp a napokban csodálkoztam rá arra, hogy 16 bites unicode karaktereket használ, tehát nem UTF8, meg nem latin1 és ez azért tök jó, mert nem kell küzdeni a karakterkódolással.
Nem lehet, hogy a használt font nem tartalmazza az adott karaktert?
Azt hiszem ez talán segít:
sampleJList = new JList(entries);
sampleJList.setVisibleRowCount(4);
Font displayFont = new Font("Serif", Font.BOLD, 18);
sampleJList.setFont(displayFont);
- A hozzászóláshoz be kell jelentkezni
hello,
En eddig ugy tapasztaltam, hogy a host oprendszernek kell tudnia.
En debian-t hasznalok, ott van egy utfmigrationtool csomag, azt kell lefuttatni root-kent is meg egyszeru usekent is.
Ha lekerdezed a LANG kornyezeti valtozot, akkor ilyesmit kell latnod:
set | grep LANG
LANG=hu_HU.UTF-8
- A hozzászóláshoz be kell jelentkezni
Nem nyertetek.
1. Kívülről: azaz nincs lehetőség a kód farigcsálására
2. Attól, mert a rendszer locale UTF-8, attól még a megfelelő
unicode font készlet nélkül nem tudja még a java sem kirajzolni a
megfelelő fontot.
Ez egy megfelelő demonstrációra: http://mindprod.com/jgloss/fontshower.html
- A hozzászóláshoz be kell jelentkezni
Az UTF16 nem epp a legjobb valasztas. Egyreszt egyre biztosabb, hogy a jovo az UTF8-e. Masreszt az UTF16 legfeljebb 16 biten tud abrazolni, mig az UTF8 jelenleg akar negy bytos karakterek megjelenitesere is alkalmas, es ez kesobb bovulhet.
Az UTF8 teljesen lefedi az UTF16-ot, igy ameddig csak UTF16-os karakterek kellenek, igazabol mindegy. De van egy-ket kinai nyelvjaras, ami miatt bizony sz0pn1 kell Java-ban is a karakterkodolassal. Az UTF8 sokkal nyerobb lett volna.
--
The Net is indeed vast and infinite...
http://gablog.eu
- A hozzászóláshoz be kell jelentkezni
> Egyreszt egyre biztosabb, hogy a jovo az UTF8-e
Az UTF-8 kommunikációra, adatcsere formátumnak nyerő. Itt a nyelv belső sztringábrázolásáról van szó, ahol a változó szélesség viszonylag sok szívást okoz.
> Masreszt az UTF16 legfeljebb 16 biten tud abrazolni
Nem. Olvass doksit.
- A hozzászóláshoz be kell jelentkezni
Igazad van, az UTF-16 is valtozo bajthosszusagu. De a Java ezt nem tamogatja teljesen.
A problema az, hogy Java-ban a char tipus per definition 16 bit (amit ha jol sejtem a vilag vegeig supportalni akarnak), igy ket bajtnal hosszabb Unicode karakterekkel megutheted a bokad. Ameddig egy streamben, Stringben van, ez nem zavar vizet, de ha mar elemenkent akarod feldolgozni, akkor erre kulon figyelmet kell szentelni, hogy nem feltetlenul minden char egy karakter.
http://weblogs.java.net/blog/joconner/archive/2004/04/unicode_40_supp.h…
--
The Net is indeed vast and infinite...
http://gablog.eu
- A hozzászóláshoz be kell jelentkezni
szia, az a jo az utf16-ban, hogy tudod cimezheto tombbe rakni pl, utf8 masra jo
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
Ok, ha akkora szoftvert fejlesztek, hogy Kínától Grönlandig lefordítják minden tájszólásra, majd akkor kezdek vele valamit ;)
- A hozzászóláshoz be kell jelentkezni