1
我正在寫字符串數據到一個文件,其中的數據應該用ASCII編寫,然後在Unicode中重複。 ASCII部分運行良好,但Unicode版本是亂碼。試圖顯式創建一個Unicode字符串與CFStringCreateMutableWithExternalCharactersNoCopy失敗悲慘。建議和示例代碼表示讚賞。如何以CF格式將數據存儲在Unicode(BE)格式中?
我正在寫字符串數據到一個文件,其中的數據應該用ASCII編寫,然後在Unicode中重複。 ASCII部分運行良好,但Unicode版本是亂碼。試圖顯式創建一個Unicode字符串與CFStringCreateMutableWithExternalCharactersNoCopy失敗悲慘。建議和示例代碼表示讚賞。如何以CF格式將數據存儲在Unicode(BE)格式中?
您可以將CFStringRef
轉換爲CFDataRef
與CFStringCreateExternalRepresentation
,例如
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
:
NSString *s = @"abc €";
NSData *d = [d dataUsingEncoding:NSUTF16BigEndianStringEncoding];
的偉大工程。謝謝。 – user216661