正在将应用程序从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);