FROM : Alexander Cohen
DATE : Tue Mar 04 19:31:07 2008
thx, works like a charm.
AC
On 4-Mar-08, at 12:49 PM, matt.<email_removed> wrote:
>
> On 4 Mar 2008, at 18:43, Alexander Cohen wrote:
>
>> Hi,
>>
>> Whats the best way to get an NSString from a wstring?
>>
>
> This is what I do:
>
> @interface NSString (wstring_additions)
> +(NSString*) stringWithwstring:(const std::wstring&)string;
> -(std::wstring) getwstring;
> @end
>
> @implementation NSString (wstring_additions)
>
> #if TARGET_RT_BIG_ENDIAN
> const NSStringEncoding kEncoding_wchar_t =
> CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF32BE);
> #else
> const NSStringEncoding kEncoding_wchar_t =
> CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF32LE);
> #endif
>
> +(NSString*) stringWithwstring:(const std::wstring&)ws
> {
> char* data = (char*)ws.data();
> unsigned size = ws.size() * sizeof(wchar_t);
>
> NSString* result = [[[NSString alloc] initWithBytes:data
> length:size encoding:kEncoding_wchar_t] autorelease];
> return result;
> }
>
> -(std::wstring) getwstring
> {
> NSData* asData = [self dataUsingEncoding:kEncoding_wchar_t];
> return std::wstring((wchar_t*)[asData bytes], [asData length] /
> sizeof(wchar_t));
> }
>
>
> Matt
DATE : Tue Mar 04 19:31:07 2008
thx, works like a charm.
AC
On 4-Mar-08, at 12:49 PM, matt.<email_removed> wrote:
>
> On 4 Mar 2008, at 18:43, Alexander Cohen wrote:
>
>> Hi,
>>
>> Whats the best way to get an NSString from a wstring?
>>
>
> This is what I do:
>
> @interface NSString (wstring_additions)
> +(NSString*) stringWithwstring:(const std::wstring&)string;
> -(std::wstring) getwstring;
> @end
>
> @implementation NSString (wstring_additions)
>
> #if TARGET_RT_BIG_ENDIAN
> const NSStringEncoding kEncoding_wchar_t =
> CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF32BE);
> #else
> const NSStringEncoding kEncoding_wchar_t =
> CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF32LE);
> #endif
>
> +(NSString*) stringWithwstring:(const std::wstring&)ws
> {
> char* data = (char*)ws.data();
> unsigned size = ws.size() * sizeof(wchar_t);
>
> NSString* result = [[[NSString alloc] initWithBytes:data
> length:size encoding:kEncoding_wchar_t] autorelease];
> return result;
> }
>
> -(std::wstring) getwstring
> {
> NSData* asData = [self dataUsingEncoding:kEncoding_wchar_t];
> return std::wstring((wchar_t*)[asData bytes], [asData length] /
> sizeof(wchar_t));
> }
>
>
> Matt
| Related mails | Author | Date |
|---|---|---|
| Alexander Cohen | Mar 4, 18:43 | |
| matt.gough | Mar 4, 18:49 | |
| Alexander Cohen | Mar 4, 19:31 |






Cocoa mail archive

