GCJ i znaki diakrytyczne

0
String text = "tekśt";
System.out.println(text);
System.out.println(new String(text.getBytes()));

daje pod gcj wynik:

tekśt
tekt

ewentualnie gdy pokombinuję z kodowaniem (flaga --encoding czy też argument ze strona kodową w konstruktorze Stringa) wychodzi:

tekśt
tek?t

ale nigdy nie zwróci pierwotnego tekstu.

gcj -v
Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/4.4.4/specs
Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../libgcj.spec
rename spec startfile to startfileorig
rename spec lib to liborig
Target: x86_64-slackware-linux
Configured with: ../gcc-4.4.4/configure --prefix=/usr --libdir=/usr/lib64 --enable-shared --enable-bootstrap --enable-languages=c,c++,ada,fortran,java,objc --enable-threads=posix --enable-checking=release --with-system-zlib --with-python-dir=/lib64/python2.6/site-packages --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --with-gnu-ld --verbose --enable-multilib --target=x86_64-slackware-linux --build=x86_64-slackware-linux --host=x86_64-slackware-linux
Thread model: posix
gcc version 4.4.4 (GCC)
0

Próbowałeś coś w stylu:

System.out.println(new String(text.getBytes(), "UTF-8"));
0

Oczywiście próbowałem ale bez efektu.
Na nowszej wersji gcj 4.8 to samo.
Od dawna mam wrażenie że ten projekt umarł.
W starszych wersjach pamiętam że kompilatorowi nie podobały się nawet ogonki w komentarzach:)

0

Działa składnia: new String( text.getBytes("UTF-8"), "UTF-8");
ale to jakaś masakra bo nie będę przerabiał swoich źródełek pisanych pod klasyczną Jawę.

Zostaje preproces na pliku budowanym w locie w pierwszej linii z przykładowo:
#define getBytes(null) getBytes("UTF-8")
później cpp -P i dopiero na jego wyrób napuszczenie gcj.

1 użytkowników online, w tym zalogowanych: 0, gości: 1