【Python】URLエンコードとデコードの方法:日本語を含むURLの処理

Webブラウザのアドレスバーに入力するURLには、原則として半角英数字と一部の記号(ASCII文字)しか使用できません。 そのため、日本語のキーワードやスペース、特殊記号などをURLに含める場合は、「パーセントエンコーディング(URLエンコード)」と呼ばれる形式(例: %E3%81%82)に変換する必要があります。

Pythonでは標準ライブラリ urllib.parse モジュールを使用して、簡単にこの変換と復元(デコード)を行えます。

目次

実装例1:文字列のエンコードとデコード

ここでは、検索キーワードとして入力された日本語文字列をURLで使える形式に変換し、その後、元の日本語に戻す処理を実装します。

ソースコード

from urllib import parse

# 1. URLエンコード (quote)
# 検索したいキーワード(日本語)
search_keyword = "観光スポット Tokyo"

# parse.quote(文字列) でパーセントエンコーディング形式に変換
# 半角スペースも '%20' などに変換されます
encoded_text = parse.quote(search_keyword)

print(f"元の文字列  : {search_keyword}")
print(f"エンコード後: {encoded_text}")

print("-" * 30)

# 2. URLデコード (unquote)
# エンコードされた文字列を元の日本語に戻します
decoded_text = parse.unquote(encoded_text)

print(f"デコード後  : {decoded_text}")

実行結果

元の文字列  : 観光スポット Tokyo
エンコード後: %E8%A6%B3%E5%85%89%E3%82%B9%E3%83%9D%E3%83%83%E3%83%88%20Tokyo
------------------------------
デコード後  : 観光スポット Tokyo

実装例2:辞書からクエリパラメータを作成する (urlencode)

実務では、単一の文字列だけでなく、複数のパラメータ(?key=value&id=123 の形式)をまとめて作成したい場面が多々あります。 その場合は parse.urlencode() 関数を使用すると、辞書型から一発で変換でき便利です。

ソースコード

from urllib import parse

# 検索条件のパラメータ(辞書)
query_params = {
    "q": "美味しい ラーメン",  # 検索ワード(スペース入り)
    "page": 1,
    "sort": "date",
    "region": "渋谷区"
}

# 辞書をURLクエリ文字列に変換
# 自動的に '&' で結合し、値はエンコードされます
query_string = parse.urlencode(query_params)

# ベースURLと結合
full_url = "https://example.com/search?" + query_string

print("--- クエリパラメータの生成 ---")
print(full_url)

実行結果

--- クエリパラメータの生成 ---
https://example.com/search?q=%E7%BE%8E%E5%91%B3%E3%81%97%E3%81%84+%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%B3&page=1&sort=date&region=%E6%B8%8B%E8%B0%B7%E5%8C%BA

解説

parse.quote(string, safe=’/’)

文字列をURLエンコードします。 デフォルトではスラッシュ / は変換されません(パスの区切り文字として残すため)。もしスラッシュも %2F に変換したい場合は、引数に safe='' を指定します。

parse.urlencode(dict)

辞書(または2要素のタプルのリスト)を受け取り、key1=value1&key2=value2 という形式の文字列を生成します。Web APIへのリクエストを作成する際などに非常に重宝します。

技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。

プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。

気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。

[Kindle Unlimited 読み放題プランをチェックする]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次