カテゴリ: 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

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

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

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
Go言語
Go言語の構造体の初期化パターンとコンストラクタ的関数の書き方を徹底解説!初心者でもわかる基本と実用例
New3
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New4
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク