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 ""
}