カテゴリ: 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ではURLComponentsとURLQueryItemを使ってクエリ文字列を簡単に作れます。これらは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でデコード
  • クエリ文字列を作るときはURLComponentsとURLQueryItemを利用
  • 文字列を直接結合せず、安全な方法で組み立てることが重要

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

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

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

Swift URLエンコード/デコード・クエリ文字列の生成では、URLエンコード/デコード・クエリ文字列の生成をSwiftで扱うときの考え方を確認しました。Swift文字列処理は、書き方だけを覚えるよりも、Xcodeで動かしながら「どこで値が変わるのか」「失敗したときに何が起きるのか」を見たほうが理解しやすくなります。

理解を深める軸:URLエンコード/デコード・クエリ文字列の生成を実務に近づけるには、日本語、英数字、空文字を入力して、countやUTF-8変換の結果を比べるところまで試すのがおすすめです。String、Character、UTF-8、Data、文字数、バイト数、多言語対応もあわせて押さえると、検索時の判断もしやすくなります。

読み直すポイント

  • URLエンコード/デコード・クエリ文字列の生成で注目する場所として、文字数とバイト数の違い、日本語や絵文字を含む文字列、Data変換の失敗を説明できる
  • 日本語、英数字、空文字を入力して、countやUTF-8変換の結果を比べる
  • Xcodeのエラー、警告、コンソール出力を読み、原因を1つ言葉にできる
  • Swift、Xcode、iOSアプリ開発の中で、この記事の知識を使う場面を想像できる

復習するときは、次のような短いコードを自分の環境で動かしてみましょう。記事のテーマに合わせて値や条件を変えると、Swiftの型安全、Optional、エラー処理、画面更新の見え方が少しずつ整理できます。

let text = "カフェ"
print(text.count)
print(Array(text.utf8))

if let data = text.data(using: .utf8) {
    print(data.count)
}

生徒

「URLエンコード/デコード・クエリ文字列の生成は、どこを変えて試せばいいか分かると復習しやすいですね。」

先生

「はい。まずは小さく動かし、次に失敗するケースを1つ足してみましょう。Swiftは型やエラーがヒントを出してくれるので、結果を見ながら直す練習がそのまま実務力につながります。」

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのrunの使い方!スコープ内で処理をまとめるテクニック
New2
Kotlin
Kotlinの文字列を逆順にするreversedの使い方を徹底解説!初心者でもわかる文字列操作入門
New3
Kotlin
KotlinのtoList・toCharArrayの使い方を徹底解説!文字列をリストに変換する方法を初心者向けにやさしく説明
New4
Kotlin
Kotlinの拡張プロパティとは?基本的な作り方と活用例を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#プログラムの基本的な書き方を完全解説!初心者でもわかる文法入門ガイド
No.2
Java&Spring記事人気No2
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
C#
C#の論理演算子の使い方を完全ガイド!&&・||・!を初心者でもわかりやすく解説
No.7
Java&Spring記事人気No7
Kotlin
KotlinでZIPファイルの圧縮と解凍を実装する手順を完全解説!Kotlinファイル操作と入出力I/O入門
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptのLiteral型とは?基本・特徴を初心者向けにわかりやすく解説

💻 作業効率アップに

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

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

※ Amazon広告リンク