我有字符串
此字符串使用euc-kr编码。
我尝试这段代码
NSString *str = MjAxObPitbUgx9C7/bq4yKPAzrfCKLnov/LFzcH2xbTAzCkguPDB/SCw+LDt
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:str options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:kCFStringEncodingEUC_KR];
但结果为空。
怎么了?我尝试
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:kCFStringEncodingDOSKorean];
和
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:kCFStringEncodingMacKorean];
但是结果是相同的。 encoding:kCFStringEncodingMacKorean的结果不是韩文。;;;;;
答案 0 :(得分:0)
这是一个可行的解决方案:
开始于:
NSString *str = @"MjAxObPitbUgx9C7/bq4yKPAzrfCKLnov/LFzcH2xbTAzCkguPDB/SCw+LDt";
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:str options:0];
您错过的是,您不能真正使用kCFStringEncodingEUC_KR
和CFStringEncodings
并期望initWithData:encoding:
的{{1}}。
您可以使用NSStringEncoding
进行转换:
CFStringConvertEncodingToNSStringEncoding()
输出:
NSString *result = [[NSString alloc] initWithData:decodedData encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingEUC_KR)];
NSLog(@"result: %@", result);
如果您想“本地”使用$>result: 2019년도 학생보호인력(배움터지킴이) 모집 공고
以及所有kCFStringEncodingEUC_KR
,CFDataRef
,并使用网桥,然后将CFStringRef
转换为{{1} }:
CFStringRef
输出:
NSString
您可能需要进行一些更改,我对CFStringRef ref = CFStringCreateWithBytes(nil, [decodedData bytes], [decodedData length], kCFStringEncodingEUC_KR, false);
NSString *result = (__bridge NSString *)ref;
NSLog(@"result: %@", result);
不太了解,请查看文档。