On Monday, March 18, 2002, at 06:56 PM, Manuel Guesdon wrote:

> On Mon, 18 Mar 2002 12:45:48 +0100 Bj�rn Gohla <[EMAIL PROTECTED]> wrote:
>
>> | On Monday 18 March 2002 12:18, Manuel Guesdon wrote:
>> | > Hi,
>> | >
>> | > When I log (with NSDebugFLog or NSDebugLog) string with characters 
>> like �,
>> | > I get strange characters: é
>> | >
>> | > He is an example:
>> | >     NSString* aTest=[NSString stringWithString:@"�"];
>> | >     NSString* aTest2=[NSString stringWithFormat:@"%@",@"�"];
>> | >     [aTest writeToFile:@"/tmp/zz"
>> | >            atomically:NO];
>> | >     NSDebugFLog(@"%@",aTest);
>> | >     [aTest2 writeToFile:@"/tmp/zz2"
>> | >            atomically:NO];
>> | >     NSDebugFLog(@"%@",aTest2);
>> | >
>> | > /tmp/zz and /tmp/zz2 are good but not the traces.
>> | >
>> | > BTW, I have GNUSTEP_STRING_ENCODING=NSISOLatin1StringEncoding in 
>> my env.
>> |
>> | this looks like the output is utf encoded while your terminal is in 
>> single
>> | byte mode.

Yes.  This was discussed on the mailing list quite a while back (I think
perhaps when syslog support was added) - and I went with what seemed to 
be the
general consensus ...  Since syslog doesn't handle wide unicode 
characters,
we would output UTF8 where a logged message was not ascii.  Perhaps it 
should
attempt to use the default C string encoding before resorting to UTF8 
though.

> I don't think so:
>         When I read on the same term /tmp/zz2 and the log file there's 
> a difference.
>
> I've found another problem:
>     NSString* aTest=[NSString stringWithString:@"�"];

I guess the NXConstantString code should probably strip the topmost bit 
to make
that ascii, or perhaps raise an exception?  I think the code doesn't do 
that
because checking that the contents of a constant string are ascii 
characters
every time the string is used would be very inefficient.

>     NSMutableDictionary* dict=[NSMutableDictionary 
> dictionaryWithObject:aTest
>                                                    forKey:aTest];
>     [dict writeToFile:@"/tmp/zz3"
>            atomically:NO];
> create a zz3 file like this:
>         {
>                 "\U00e9" = "\U00e9";
>         }
> and not like this
>         {
>                 "�" = "�";
>         }
>

That's correct behavior afaik ... a property list is supposed to be 
ascii data
with \U escapes for unicode characters (it's a locale independent 
format), so
the first form is correct.
If the property list was in MacOS-X format rather than OpenStep style 
format, it
would be XML and be entirely UTF8 anyway.


I *think* that the things you are seeing as problems are in fact correct 
behavior.


_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to