更新日:2026/07/09
APIを利用していると、「URLエンコード」という言葉を目にすることがあります。
例えば、検索条件や得意先名などの文字列をURLに含めてAPIへ送信する場合、日本語やスペース、記号などはそのままではなく「URLエンコード」と呼ばれる形式に変換されます。
この記事では、URLエンコードの基本的な仕組みと、API利用時に押さえておきたいポイントを解説します。
URLエンコードとは、URLに含める文字列を安全に送受信できる形式へ変換する処理です。
例えば、検索キーワードとして「PCA 会計」をAPIへ送信したいとします。
PCA 会計
この文字列は、URLに含める際にURLエンコードされます。
PCA%20%E4%BC%9A%E8%A8%88
このように、スペースや日本語などを「%」と16進数の組み合わせに変換することを、URLエンコードと呼びます。
URLでは、一部の文字には特別な意味があります。
| 文字 | URLでの意味 |
|---|---|
| ? | パラメータ開始 |
| & | パラメータ区切り |
| = | キーと値の区切り |
| # | フラグメント識別子 |
これらの文字をデータとして送信したい場合、そのままではURLの構造の一部として解釈される可能性があります。
例えば、得意先名が
A&B商事
だった場合、そのままURLへ組み込むと、
?customer=A&B商事
となり、「&」がパラメータの区切りと判断される可能性があります。
URLエンコードを行うことで、
?customer=A%26B%E5%95%86%E4%BA%8B
となり、「A&B商事」という文字列全体を1つのデータとして正しく送信できます。
日本語もURLに含める際はURLエンコードされます。
例えば
東京
は次のように変換されます。
%E6%9D%B1%E4%BA%AC
これは内部で
という処理が行われているためです。
仕組みを細かく覚える必要はありませんが、「日本語はURLエンコードされて送信される」と理解しておけば十分です。
次の文字は一般的にURLエンコードの対象になりません。
URLエンコードは、主にクエリパラメータで利用されます。
例えば、検索キーワードとして「PCA 会計」を指定する場合を見てみましょう。
入力する文字列
PCA 会計
URLエンコード後
PCA%20%E4%BC%9A%E8%A8%88
APIへ送信されるURLの例
https://example.com/search?keyword=PCA%20%E4%BC%9A%E8%A8%88
このように、検索条件などの文字列は、入力値・エンコード後の値・送信されるURLをセットで確認すると、APIにどの値が渡るのかを把握しやすくなります。
多くのプログラミング言語やAPI開発ツールには、URLエンコードを自動的に行う機能があります。
そのため、通常は専用の関数やライブラリを利用し、自分でURLエンコードを行う必要はありません。
ただし、実装方法によっては手動でURLエンコードが必要な場合もあります。
| 確認する場面 | 対応例 |
|---|---|
| APIクライアントやHTTPライブラリのパラメータ機能を使う場合 | 通常はライブラリに任せ、手動でエンコードしない。 |
| URL文字列を自分で連結して作る場合 | 値の部分だけを明示的にエンコードする必要がある。 |
| 外部から受け取った値を再利用する場合 | すでにエンコード済みか確認してから処理する。 |
また、すでにエンコード済みの文字列を再度エンコードすると「二重エンコード」が発生し、正しくデータを送信できなくなることがあるため注意しましょう。
例えば「東京」はURLエンコード後
%E6%9D%B1%E4%BA%AC
と表されますが、これを再度エンコードすると
%25E6%259D%25B1%25E4%25BA%25AC
のように「%」まで変換され、API側で元の「東京」として正しく解釈できない場合があります。
URLエンコードとは、URLで使用できない文字を安全に送受信するための変換処理です。
主なポイントは以下の通りです。
普段はライブラリやAPI開発ツールが自動で処理してくれることがほとんどですが、URLエンコードの仕組みを理解しておくことで、文字化けやパラメータの解釈ミスなどのトラブルにも対応しやすくなります。