This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: outputting iso-8859-1 chars
>>>>> "Morten" == Morten Poulsen <morten@afdelingp.dk> writes:
Morten> Are you using a newer version than 3.0.4 ?
Morten> $ LC_CTYPE=C ./a.out
Morten> xxx?xxx
Morten> $ LC_CTYPE=en_GB ./a.out
Morten> xxx?xxx
I looked at the 3.0 branch sources using cvsweb. They have enough
support in them that this should work.
The default output encoding is chosen in libjava/java/lang/natSystem.cc.
Well, it is if various things are found by configure; in your case
this almost certainly happens since (1) Linux has all the features in
question, and (2) if we don't find the features we need we default to
ISO-8859-1 (which would contradict the results you see).
So I think the question is why you aren't seeing what we'd expect.
Try compiling and running this program:
#include <stdio.h>
#include <locale.h>
#include <langinfo.h>
int main ()
{
char *x;
setlocale (LC_CTYPE, "");
x = nl_langinfo (CODESET);
printf ("%s\n", x);
}
I get this:
creche. ./a
ANSI_X3.4-1968
creche. LC_CTYPE=en_GB ./a
ISO-8859-1
If this program doesn't print ISO-8859-1 (or some alias) when
LC_CTYPE=en_GB, then I think the problem is in your libc. Otherwise
maybe the problem is in libjava; you'd have to do some debugging to
figure out what is going wrong.
Tom