swift - 发出 Base64 解码特定字符串

标签 swift base64 swift2

我有以下 base64 编码的字符串,我需要使用 Swift 对它进行 base64 解码:

KimHser2RvFf9RPjajWO4K/odT51hTlISwMKNIfPUC+gXYZKNjGDCvHEom++6liXNq6PkStnpzMKBsTk+tIpJA==

那里没有换行符,StackOverflow 只是换行字符串。我尝试了多种方法来对其进行 Base64 解码。我确实收到了 NSData 形式的结果,但是,当我尝试将 NSData 转换为 NSString 对象时,结果始终为 nil。如果我将编码更改为 ASCII 或 UTF16,我会收到结果,因此我假设 Swift 无法识别 UTF8 格式的 NSData。但是,如果我在 C# 中对同一字符串进行 Base 64 解码,则 UTF8 可以工作,并且 Base64 解码也可以工作。因此,我确信由于缺乏 Swift 经验,我错过了一步。

这是我最近的尝试:

import Foundation

extension String {
// MARK: Base64 encode
func base64Encode() -> String {
    let data : NSData = self.dataUsingEncoding(NSUTF8StringEncoding)!
    return data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
}

// MARK: Base64 decode
func base64Decode() -> String {
    let decodedData = NSData(base64EncodedString: self, options: NSDataBase64DecodingOptions(rawValue: 0))
    let decodedString = NSString(data: decodedData!, encoding: NSUTF8StringEncoding)
    return decodedString as! String
}
}

我确信这很容易。然而,这是我在 Swift 中的第一个应用程序,我仍在学习中。

非常感谢任何帮助。

谢谢!

最佳答案

您的“base64”字符串无效。如果你尝试在 some online decoder 中解码它它失败。但你的代码是有效的:)
更正
如果编码的原始数据不是字符串数据,那么我同意@Martin R

关于swift - 发出 Base64 解码特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33532282/

相关文章:

ios - 从明天开始在 Swift 中安排本地通知每天重复

ios - 如何在spritekit中录制游戏场景

php - 需要对这个字符串进行Base64解码

ios - 尝试创建收藏夹按钮以在收藏夹列表中添加项目

SwiftUI - TabView with NavigationView 生成灰色区域

具有 base 64 + hMac 编码的 iOS 应用程序

Android BitmapFactory 在 Base64 解码字节数组上返回 null

iOS 从云存储中选择图像

swift - 调用可以抛出,但不能抛出全局变量初始值设定项之外的错误

ios - 如何通过扩展将空字符串替换为某个常量值?