如何解码 base64 NSString(使用 euc-kr).. T.T
how to decode base64 NSString(using euc-kr) .. T.T
我有字符串
这个字符串是用 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 的结果不是韩语。;;;;;
这是一个可行的解决方案:
开始于:
NSString *str = @"MjAxObPitbUgx9C7/bq4yKPAzrfCKLnov/LFzcH2xbTAzCkguPDB/SCw+LDt";
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:str options:0];
你错过的是你不能真正使用 kCFStringEncodingEUC_KR
,它是一个 CFStringEncodings
和 initWithData:encoding:
期望一个 NSStringEncoding
.
可以用CFStringConvertEncodingToNSStringEncoding()
转换:
NSString *result = [[NSString alloc] initWithData:decodedData encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingEUC_KR)];
NSLog(@"result: %@", result);
输出:
$>result: 2019년도 학생보호인력(배움터지킴이) 모집 공고
如果你想使用"natively"、kCFStringEncodingEUC_KR
和所有的CFDataRef
、CFStringRef
,然后使用桥将CFStringRef
转换为NSString
:
CFStringRef ref = CFStringCreateWithBytes(nil, [decodedData bytes], [decodedData length], kCFStringEncodingEUC_KR, false);
NSString *result = (__bridge NSString *)ref;
NSLog(@"result: %@", result);
输出:
$>result: 2019년도 학생보호인력(배움터지킴이) 모집 공고
您可能需要做一些更改,我不太熟悉 CFStringCreateWithBytes()
,请查看文档。
我有字符串
这个字符串是用 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 的结果不是韩语。;;;;;
这是一个可行的解决方案:
开始于:
NSString *str = @"MjAxObPitbUgx9C7/bq4yKPAzrfCKLnov/LFzcH2xbTAzCkguPDB/SCw+LDt";
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:str options:0];
你错过的是你不能真正使用 kCFStringEncodingEUC_KR
,它是一个 CFStringEncodings
和 initWithData:encoding:
期望一个 NSStringEncoding
.
可以用CFStringConvertEncodingToNSStringEncoding()
转换:
NSString *result = [[NSString alloc] initWithData:decodedData encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingEUC_KR)];
NSLog(@"result: %@", result);
输出:
$>result: 2019년도 학생보호인력(배움터지킴이) 모집 공고
如果你想使用"natively"、kCFStringEncodingEUC_KR
和所有的CFDataRef
、CFStringRef
,然后使用桥将CFStringRef
转换为NSString
:
CFStringRef ref = CFStringCreateWithBytes(nil, [decodedData bytes], [decodedData length], kCFStringEncodingEUC_KR, false);
NSString *result = (__bridge NSString *)ref;
NSLog(@"result: %@", result);
输出:
$>result: 2019년도 학생보호인력(배움터지킴이) 모집 공고
您可能需要做一些更改,我不太熟悉 CFStringCreateWithBytes()
,请查看文档。