zoukankan      html  css  js  c++  java
  • iOS-NSString-Base64String-Base64原理

    之前看到好多人找Str2Base64Str,还有好多自己写了方法的,仔细研究了下base64的编码原理(这个我写在下面),发现官方的API已经可以完成这项功能,这里贴出来供大家参考。

    一言不合就上代码:

     1     NSString  * sourceString = @"test";
     2     
     3     NSString *base64String = [[sourceString dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
     4     
     5 //    大概是这个样子的
     6 //    NSData * strData = [sourceString dataUsingEncoding:NSUTF8StringEncoding];
     7 //    NSString * base64StringT = [strData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
     8     
     9     
    10     NSLog(@"%@",base64String);
    11     
    12     
    13     NSString *  restoreString = [[NSString alloc]initWithData:[[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters] encoding:NSUTF8StringEncoding];
    14 //    大概是这个样子的
    15 //    NSData * baseStrData = [[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters];
    16 //    NSString * restoreStringT = [[NSString alloc]initWithData:baseStrData encoding:NSUTF8StringEncoding];
    17     
    18     NSLog(@"%@",restoreString);

    上面代码中有两个参数“Options”,一个是EnCode,一个是DeCode,其中DeCode就一个可选,EnCode有4个,选择哪一个都行,目前我发现,各个参数仅是打印出来后的样式不一样,内容一样,应该是为了方便打印debug而设置的(个人猜测,很可能不对)。

    Base64原理这里粗略的讲一下,表格不太好弄,我就直接图片了,加一个文档下载地址:点我下载文档

     

  • 相关阅读:
    JVM探究之 —— HotSpot虚拟机对象探秘
    JVM探究之 —— Java内存区域
    线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
    dubbo线程模型配置
    hash bucket
    java 查看线程的信息
    List,Set,Map存取元素各有什么特点
    java 让图片变黑白
    springMVC 防重校验(拦截器)
    BigDecimal 的幂次方运算
  • 原文地址:https://www.cnblogs.com/kongkaikai/p/5627205.html
Copyright © 2011-2022 走看看