CFStringRef转UTF8 cstring的问题
我想把一个CFStringRef转化成char*指针,代码如下:CFStringRef cfstr;
...
const char* cstr = CFStringGetCStringPtr( cfstr,kCFStringEncodingUTF8 );
以上代码在cfstr是英语字符情况下可以,一碰到中文就转换失败,返回的cstr为NULL.
在中文情况下,我试着用NSString进行转换,可以转换成功,代码如下:
CFStringRef cfstr;
...
NSString* nstr = (NSString*)cfstr;
const char* cstr = [nstrcStringUsingEncoding:NSUTF8StringEncoding];
请问,为什么中文的CFStringRef不能直接转换成UTF8 的 C String,而用NSString可以转化成功了?
怎么使用CFString系列的函数将CFStringRef转换成UTF8的C String?
将CFStringGetCStringPtr换成CFStringGetCString
char buf[1025];
memset( buf, 0, 1025 );
CFStringGetCString( cfstr, buf, 1024, kCFStringEncodingUTF8);