Le 28 mars 2012 à 20:00, Charles Srstka a écrit : > On Mar 28, 2012, at 9:55 AM, jonat...@mugginsoft.com wrote: > >> On 28 Mar 2012, at 15:35, Andreas Grosam wrote: >> >>> >>> On Mar 28, 2012, at 3:58 PM, jonat...@mugginsoft.com wrote: >>>>> >>>> I presume that you considered CFStringAppendCString(): >>>> >>>> void CFStringAppendCString ( >>>> CFMutableStringRef theString, >>>> const char *cStr, >>>> CFStringEncoding encoding >>>> ); >>>> >>> >>> >>> Yes, but: >>> >>> Can I use any code-unit, even so the function indicates that only "char" is >>> allowed? What, if I have uint32_t or uint16_t code-unit types? (I guess, I >>> can use them anyway after a type cast.) The description is not clear about >>> this, though. >> The fact that the function supports encoding presumably entails support for >> non char code-unit types. >> If not, this is a pretty sterile function. >> >>> >>> Also, consider that Unicode NULL (U+0000) is a regular character in Unicode >>> - which conflicts with C strings which shall be zero terminated. >> A valid point. I don't know how the Unicode NULL is generally used in >> practice. > > 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. > > CFAppendCString() is not what you want if you might be using UTF16.
If you have an UTF-16 buffer, I think you can just use CFStringAppendCharacters(). -- Jean-Daniel _______________________________________________ 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