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

Reply via email to