【问题标题】:how to decode base64 NSString(using euc-kr) .. T.T如何解码base64 NSString(使用euc-kr).. T.T
【发布时间】:2019-06-22 09:23:22
【问题描述】:

我有字符串

这个字符串是用 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 *decodedString = [[NSString alloc] initWithData:decodedData encoding:kCFStringEncodingDOSKorean];但结果是一样的..
  • 如果与您的问题相关,请在您的问题中添加该代码而不是评论。请说明什么是 euc-kr ??
  • euc-kr是类似utf-8的字符编码方案,
  • 让我知道这种类型格式在类型属性部分可用here。给我虚拟字符串来测试。如果我的代码正常工作,那么我会更新答案。

标签: ios objective-c nsstring


【解决方案1】:

这是一个可行的解决方案:

开始于:

NSString *str = @"MjAxObPitbUgx9C7/bq4yKPAzrfCKLnov/LFzcH2xbTAzCkguPDB/SCw+LDt";
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:str options:0];

您错过的是,您不能真正使用 kCFStringEncodingEUC_KR,它是 CFStringEncodingsinitWithData:encoding:,期望 NSStringEncoding

您可以使用CFStringConvertEncodingToNSStringEncoding()进行转换:

NSString *result = [[NSString alloc] initWithData:decodedData encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingEUC_KR)];
NSLog(@"result: %@", result);

输出:

$>result: 2019년도 학생보호인력(배움터지킴이) 모집 공고

如果你想“本机”使用kCFStringEncodingEUC_KR,以及所有CFDataRefCFStringRef,并使用桥接然后将CFStringRef转换为NSString

CFStringRef ref = CFStringCreateWithBytes(nil, [decodedData bytes], [decodedData length], kCFStringEncodingEUC_KR, false);
NSString *result = (__bridge NSString *)ref;
NSLog(@"result: %@", result);

输出:

$>result: 2019년도 학생보호인력(배움터지킴이) 모집 공고

您可能需要做一些更改,我对CFStringCreateWithBytes() 不是很熟悉,请查看文档。

【讨论】:

  • 噢噢噢完美!!完美的!我不知道 CFStringConvertEncodingToNSStringEncoding。谢谢!
猜你喜欢
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2018-03-27
  • 2012-08-03
  • 2012-10-26
相关资源
最近更新 更多