`
thierry.xing
  • 浏览: 656763 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
580fa9c1-4a0c-3f40-a55a-c9256ce73302
Sencha Touch中...
浏览量:0
社区版块
存档分类
最新评论

在ios中对gbk进行base64解码

    博客分类:
  • iOS
阅读更多

如何在ios中对gbk进行base64解码?

首先下载在github上下载Base64的编解码第三方组件:

 

https://github.com/nicklockwood/Base64

 

下载后导入到项目中,如果你的文本是Utf-8编码的,解码直接调用方法:

- (NSString *)base64DecodedString
{
    return [NSString stringWithBase64EncodedString:self];
}

 即可完成解码操作。

 

但是对于其它编码,比如GBK,则回返回空。

通过查看源代码,发现编码部分已经被写死为:

return [[self alloc] initWithData:data encoding:NSUTF8StringEncoding];

 

所以,我们要对此方法进行拓展:

+ (NSString *)stringWithBase64EncodedString:(NSString *)string withEncoding:(NSStringEncoding)encoding
{
    NSData *data = [NSData dataWithBase64EncodedString:string];
    if (data)
    {
        return [[self alloc] initWithData:data encoding:encoding];
    }
    return nil;
}

- (NSString *)base64DecodedString:(NSStringEncoding)encoding
{
    return [NSString stringWithBase64EncodedString:self withEncoding:encoding];
}


 

GBK文本调用解码方法:

    NSStringEncoding gbkEncoding =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
    NSLog(@"base64 %@",[str base64DecodedString:gbkEncoding]);

 搞定!

 

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics