2012-09-26 2 views
1

데이터를 ASCII로 쓰고 유니 코드로 본질적으로 반복해야하는 파일에 문자열 데이터를 쓰고 있습니다. ASCII 부분은 잘 작동하지만 유니 코드 버전이 왜곡되어 있습니다. 명시 적으로 유니 코드 문자열을 만들려고하면 CFStringCreateMutableWithExternalCharactersNoCopy이 비참하게 실패합니다. 조언과 샘플 코드가 감사합니다.CFDataRef 내에 유니 코드 (BE) 형식으로 데이터를 저장하려면 어떻게해야합니까?

답변

2

당신은 예를

CFStringRef s = CFSTR("abc €"); 
CFDataRef d = CFStringCreateExternalRepresentation(NULL, s, kCFStringEncodingUTF16BE, 0); 
// d now contains the bytes 00 61 00 62 00 63 00 20 20 ac. 

또는 NSString/NSData으로, CFStringCreateExternalRepresentation으로 CFDataRefCFStringRef을 변환 할 수 있습니다

NSString *s = @"abc €"; 
NSData *d = [d dataUsingEncoding:NSUTF16BigEndianStringEncoding]; 
+0

가 잘 작동합니다. 고맙습니다. – user216661

관련 문제