On Mar 28, 2012, at 11:00 AM, Charles Srstka <cocoa...@charlessoft.com> wrote: > Unicode NULL is the least of your problems. In UTF16, each character in the > normal ASCII range is going to contain a zero as one of its two bytes (which > one, of course, depending on whether the encoding is big- or little-endian). > CFStringAppendCString(), along with the other functions that take C strings, > stops at the first zero byte it hits, which means that unless your entire > file is in a non-Western script, it’s going to get cut short. > > CFStringAppendCString() is not what you want if you might be using UTF16.
That's right. The first thing CFStringAppendCString() does is call strlen(). CoreFoundation does have a function internally that would do what you want. You could file a bug report asking for a new API to match. However, it requires almost as much work as using a temporary CFString object anyway, except in some ASCII and UTF-16 cases. I would not expect your CFStringCreateWithBytesNoCopy() solution to be much slower unless you're performing a large number of short appends with one of CFString's preferred encodings. -- Greg Parker gpar...@apple.com Runtime Wrangler _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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 arch...@mail-archive.com