【解説】PCAクラウドWeb-APIのためのWeb技術の基礎 URLエンコード編

更新日:2026/07/09

はじめに

APIを利用していると、「URLエンコード」という言葉を目にすることがあります。
例えば、検索条件や得意先名などの文字列をURLに含めてAPIへ送信する場合、日本語やスペース、記号などはそのままではなく「URLエンコード」と呼ばれる形式に変換されます。
この記事では、URLエンコードの基本的な仕組みと、API利用時に押さえておきたいポイントを解説します。

URLエンコードとは

URLエンコードとは、URLに含める文字列を安全に送受信できる形式へ変換する処理です。
例えば、検索キーワードとして「PCA 会計」をAPIへ送信したいとします。

PCA 会計

この文字列は、URLに含める際にURLエンコードされます。

PCA%20%E4%BC%9A%E8%A8%88

このように、スペースや日本語などを「%」と16進数の組み合わせに変換することを、URLエンコードと呼びます。

なぜURLエンコードが必要なのか

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

これは内部で

  1. UTF-8のバイト列へ変換
  2. 各バイトを16進数へ変換
  3. 各値の前に「%」を付ける

という処理が行われているためです。

CIG_api_url_encode00

仕組みを細かく覚える必要はありませんが、「日本語はURLエンコードされて送信される」と理解しておけば十分です。

次の文字は一般的にURLエンコードの対象になりません。

  • アルファベット(大文字・小文字): A〜Z, a〜z
  • 数字: 0〜9
  • 基本記号: - (ハイフン), _ (アンダースコア), . (ピリオド), ~ (チルダ)

APIでよく利用される場面

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にどの値が渡るのかを把握しやすくなります。

CIG_api_url_encode01

URLエンコードは自分で行う必要がある?

多くのプログラミング言語やAPI開発ツールには、URLエンコードを自動的に行う機能があります。

そのため、通常は専用の関数やライブラリを利用し、自分でURLエンコードを行う必要はありません。

CIG_api_url_encode02

ただし、実装方法によっては手動でURLエンコードが必要な場合もあります。

確認する場面 対応例
APIクライアントやHTTPライブラリのパラメータ機能を使う場合 通常はライブラリに任せ、手動でエンコードしない。
URL文字列を自分で連結して作る場合 値の部分だけを明示的にエンコードする必要がある。
外部から受け取った値を再利用する場合 すでにエンコード済みか確認してから処理する。

また、すでにエンコード済みの文字列を再度エンコードすると「二重エンコード」が発生し、正しくデータを送信できなくなることがあるため注意しましょう。

例えば「東京」はURLエンコード後

%E6%9D%B1%E4%BA%AC

と表されますが、これを再度エンコードすると

%25E6%259D%25B1%25E4%25BA%25AC

のように「%」まで変換され、API側で元の「東京」として正しく解釈できない場合があります。

CIG_api_url_encode03

まとめ

URLエンコードとは、URLで使用できない文字を安全に送受信するための変換処理です。

主なポイントは以下の通りです。

  • URLで使用できない文字を「%xx」形式へ変換する
  • 日本語やスペース、記号などが変換対象になる
  • APIのクエリパラメータで利用されることが多い
  • 多くのプログラミング言語やAPI開発ツールが自動で処理してくれる
  • 二重エンコードに注意する

普段はライブラリやAPI開発ツールが自動で処理してくれることがほとんどですが、URLエンコードの仕組みを理解しておくことで、文字化けやパラメータの解釈ミスなどのトラブルにも対応しやすくなります。