This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]