カテゴリ: Swift 更新日: 2026/01/12

Swiftの文字列操作!URLエンコード・デコードとクエリ文字列の生成を徹底解説

Swift URLエンコード/デコード・クエリ文字列の生成
Swift URLエンコード/デコード・クエリ文字列の生成

先生と生徒の会話形式で理解しよう

生徒

「先生、URLに日本語や記号を入れるとエラーになることがあるんですが、どうすればいいですか?」

先生

「それはURLエンコードという処理が必要だからです。URLエンコードを使えば、日本語や特殊記号を安全にURLに含められますよ。」

生徒

「なるほど!じゃあSwiftではどうやってエンコードやデコードをするんですか?」

先生

「Swiftには便利なメソッドが用意されています。さらに、Web開発でよく使うクエリ文字列の生成方法も一緒に学んでみましょう!」

1. URLエンコードとは?

1. URLエンコードとは?
1. URLエンコードとは?

URLエンコードとは、インターネットのURLに使えない文字(日本語や記号など)を安全に変換することです。例えば「こんにちは」という文字をそのままURLに入れるとエラーになりますが、エンコードすると機械が理解できる形式に変換されます。

具体的には、空白は%20、日本語の「あ」は%E3%81%82のように変換されます。これにより、世界中のどんな環境でも安全にデータを送受信できるようになります。

2. SwiftでのURLエンコード方法

2. SwiftでのURLエンコード方法
2. SwiftでのURLエンコード方法

Swiftでは、addingPercentEncodingというメソッドを使ってURLエンコードができます。これは文字列を変換して、URLに含めても問題がない形式にしてくれます。


let text = "こんにちは Swift"
if let encoded = text.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
    print(encoded)
}

%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%20Swift

このように、空白や日本語が安全に変換されているのがわかります。

3. URLデコードの方法

3. URLデコードの方法
3. URLデコードの方法

URLエンコードされた文字列は、人間には読みにくいので、元の文字列に戻す必要があります。これを「デコード」と呼びます。SwiftではremovingPercentEncodingを使います。


let encoded = "%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%20Swift"
if let decoded = encoded.removingPercentEncoding {
    print(decoded)
}

こんにちは Swift

このように、エンコードされた文字列を元の日本語に戻すことができます。

4. クエリ文字列とは?

4. クエリ文字列とは?
4. クエリ文字列とは?

クエリ文字列とは、URLの後ろに「?」をつけて追加するパラメータ部分のことです。例えば以下のようなURLです。


https://example.com/search?keyword=Swift&sort=desc

ここでは、検索キーワードに「Swift」、並び順に「desc(降順)」を指定しています。クエリ文字列を使うと、サーバーに情報を送って検索やフィルタリングができるようになります。

5. Swiftでクエリ文字列を生成する

5. Swiftでクエリ文字列を生成する
5. Swiftでクエリ文字列を生成する

SwiftではURLComponentsURLQueryItemを使ってクエリ文字列を簡単に作れます。これらはURLを扱うための便利な仕組みで、文字列を安全に組み立てることができます。


var components = URLComponents(string: "https://example.com/search")!
components.queryItems = [
    URLQueryItem(name: "keyword", value: "Swift 入門"),
    URLQueryItem(name: "sort", value: "desc")
]
print(components.url!)

https://example.com/search?keyword=Swift%20入門&sort=desc

日本語の「入門」も自動的にエンコードされ、安心して使えるURLが生成されます。

6. 実用例:検索フォームの入力をURLに変換

6. 実用例:検索フォームの入力をURLに変換
6. 実用例:検索フォームの入力をURLに変換

例えばアプリでユーザーが検索キーワードを入力したとき、その文字列をそのままURLに付けると不具合が起こる可能性があります。そこで、入力をクエリ文字列に変換すれば安全にリクエストできます。


let keyword = "Swift 初心者"
var components = URLComponents(string: "https://example.com/search")!
components.queryItems = [
    URLQueryItem(name: "q", value: keyword)
]
print(components.url!)

https://example.com/search?q=Swift%20初心者

このように、Swiftではエンコードを意識せずに入力をそのまま渡せば、自動的に安全なURLが作られます。

7. URL操作のベストプラクティス

7. URL操作のベストプラクティス
7. URL操作のベストプラクティス

最後に、SwiftでURLを扱うときのベストプラクティスをまとめます。

  • 日本語や記号を含む場合は必ずエンコードする
  • addingPercentEncodingでエンコード、removingPercentEncodingでデコード
  • クエリ文字列を作るときはURLComponentsURLQueryItemを利用
  • 文字列を直接結合せず、安全な方法で組み立てることが重要

これらを守ることで、SwiftのURL操作が正しく行え、アプリやWebサービスが安定して動作します。

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
New2
Kotlin
Kotlinのコーディング規約(公式スタイルガイド)とは?読みやすいコードを書くための基本ルール
New3
Kotlin
Kotlinの関数型を整理するパッケージ・ファイル構造の例を初心者向けにやさしく解説!
New4
Swift
Swiftデータ型まとめ|String・Int・Bool・Arrayの基本を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.3
Java&Spring記事人気No3
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.5
Java&Spring記事人気No5
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.6
Java&Spring記事人気No6
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.7
Java&Spring記事人気No7
Swift
Swiftで0埋め・ゼロパディングを徹底解説!printf互換のformat活用法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのgetter・setterのカスタマイズ方法をわかりやすく解説!初心者向け完全ガイド