【Swift】URLエンコード・デコードの実装メモ

SwiftでURLエンコード・デコードをする必要があったため、実装方法を残しておく。

開発環境

  • MacOS Big Sur 11.3
  • Xcode ver 12.5
  • Swift ver 5.4

概要

SwiftでURLエンコードとデコードの方法をまとめる

ソースコード

URLエンコード

例)あ → %E3%81%82

func urlEncode(beforeText: String) -> String {
    // RFC3986 に準拠
    // 変換対象外とする文字列(英数字と-._~)
    let allowedCharacters = NSCharacterSet.alphanumerics.union(.init(charactersIn: "-._~"))
        
    if let encodedText = beforeText.addingPercentEncoding(withAllowedCharacters: allowedCharacters) {
        return encodedText
    }
    alert(title: "エラー", message: "変換に失敗しました")
    return ""
}

URLデコード

例)%E3%81%82 → あ

func urlDecode(beforeText: String) -> String {
    if let decodedText = beforeText.removingPercentEncoding {
        return decodedText
    }
    alert(title: "エラー", message: "変換に失敗しました")
    return ""
}

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です