Subject: Re: swi jpl character coding

From: Jan Wielemaker <[email-masked]>
Date: Sun, 10 Dec 2000 14:01:10 +0100

> > Hi,
> > 
> > i use jpl-1.0.1 together with 3.4.2. In my Prolog Demo i use some
> > german "Umlaute" like ÄÖÜöäüß.
> > All these characters are mapped to ASCII 128 on the Java side.
> > 
> > What can i do?
> 
> Are you using umlautes in atoms or strings?  And I assume this is in
> your Prolog code, yes?
> 
> Converting from Prolog to Java, a char array is obtained from
> the FLI PL_get_atom_chars function, which returns char *, which in turn
> is converted to a Java String using NewStringUTF.
> 
> I guess I see two opportunities for things to go awry; either the
> PL_get_atom_chars is just returning the high order byte of the umluate
> char, or the NewStringUTF is not respecting the UTF encoding.
> 
> Jan, how are atoms encoded in the prolog vm?  As UTF?

No.  As yet it is encoded as an unsigned char * with length, so it can
contain 0-bytes.  So it cannot represent characters outside the range
0..255, which you can use with any 8-bit encoding for which the lower
128 characters match the ASCII set.  It is planned to change this to
use UTF-8, probably somewhere next year.

	Cheers --- Jan