正在将应用程序从Java转换为Objective-C,并遇到了字符编码问题。

在Java代码中,要转换的语句是:

byte[] instructions = input.getBytes("CP037");


我希望在Objective-C中执行以下操作:

 const char *instructions = [input CP037];


但是“ CP037”不以编码形式存在,有人知道如何克服吗?

最佳答案

最后到达那里:

 NSString *stringThatNeedsToBeEncoded = @"randomString";
 CFDataRef encodedStringAsCFData = CFStringCreateExternalRepresentation(CFAllocatorGetDefault(), (CFStringRef)stringThatNeedsToBeEncoded, kCFStringEncodingEBCDIC_CP037, 0);

 CFIndex bufferLength = CFDataGetLength(encodedStringAsCFData);
 UInt8 *buffer = malloc(bufferLength);
 CFDataGetBytes(encodedStringAsCFData, CFRangeMake(0, CFDataGetLength(encodedStringAsCFData)), buffer);

08-26 23:59