I ran into something similar in my own work, but my solution may not fit your
needs.
printf() won't work reliably for you. My conjecture is that printf buffers its
work byte-by-byte, and if an encoded character falls across a buffer boundary,
the two parts are output as escaped-decimal, because each looks like a broken
encoding in isolation.
The way I solved it was to use -[NSString
writeToFile:atomically:encoding:error:]. Obviously, that may not be an easy
substitution for you, but unlike stdio, NSString knows about Unicode all the
way down.
Or, as you say, the buffering problem may be with Xcode. In fact, that's more
likely.
— F
On 31 Oct 2012, at 9:41 AM, Gerriet M. Denkmann <[email protected]> wrote:
> I print strings like:
> NSString *s = @"ร่วมรส";
> fprintf(stderr, "%s\n", [ s UTF8String]);
> and usually it just works.
>
> But sometimes it does not and I get garbage like:
> ร่ว\340\270\241รส
>
> Converting these numbers to hex one gets: 0xe0 0xb8 0xa1 which is the
> Utf8-code for THAI CHARACTER MO MA.
> So why does it not print (as it should):
> ร่วมรส ?
>
> This is not really reproducible, but happens in about 3% of all lines.
>
> Known error, or my mistake?
> Or some well meant attempt to prevent any form of indecency appearing on my
> screen (ร่วมรส = copulate)?
>
> Gerriet.
>
>
> _______________________________________________
>
> Cocoa-dev mailing list ([email protected])
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/fritza%40manoverboard.org
>
> This email sent to [email protected]
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]