本文へスキップ
kitto works
ツール一覧

URLエンコード|URLエンコード・デコード変換(一括処理対応)

テキストとパーセントエンコード済み文字列(URLエンコード)を相互変換します。複数行の一括処理に対応し、クエリパラメータ向け(component)とURL全体向け(full)の2方式を切り替え可能。入力した内容はブラウザの中だけで処理され、外部には送信されません。

変換方向
エンコード方式

入力した内容はブラウザの中だけで処理され、どこにも送信されません。

使い方

  1. 「変換方向」でエンコード(テキスト→URLエンコード)かデコード(URLエンコード→テキスト)かを選びます。
  2. 「エンコード方式」でコンポーネント(クエリパラメータの値向け)かフルURI(URL全体向け)かを選びます。
  3. 入力欄にテキストを貼り付けます。複数行貼り付けると1行ずつ変換され、その場に結果が表示されます。

計算・変換の根拠

エンコードの仕組み

入力を1行ずつ処理し、各行をUTF-8のバイト列としてパーセントエンコード(%XX形式の16進数表記)します。複数行貼り付けた場合、行ごとに独立して変換し、結果を改行で再結合します(一括処理)。

コンポーネント方式とフルURI方式の違い

2つの方式はいずれもRFC 3986で定義された標準的なURLエンコードです。

  • コンポーネント方式(ブラウザ標準のencodeURIComponent相当): 英数字と - _ . ~ 以外のすべての文字をエンコードします。クエリパラメータの値やパスの一部など、URLの「部品」として埋め込むテキストに向いています。
  • フルURI方式(ブラウザ標準のencodeURI相当): URLの構造を表す記号(; / ? : @ & = + $ , #)はエンコードせずそのまま残します。すでに構造を持つURL全体をエンコードする際に、構造が壊れないようにするための方式です。

どちらの方式でも、日本語や絵文字などのASCII以外の文字は常にエンコードされます。

デコードの仕組み

パーセントエンコード列をUTF-8のバイト列として復号し、テキストに戻します。フルURI方式でデコードする場合、URL構造上の記号に対応するエンコード列(%2Fなど)はデコードせずそのまま残します(意図しないURL構造の変化を防ぐため)。

上限について

入力は100万文字までに対応しています。それを超える入力はエラーとして扱われ、変換は行われません。

エラーになる場合

デコード時に、%の後に正しい16進数2桁が続かない場合や、復号結果が正しいUTF-8のバイト列にならない場合はエラーになります。複数行の一括処理では、1行でも不正な行があると全体がエラーになります。

よくある質問

入力した内容はサーバーに送信されますか?

送信されません。エンコード・デコードの処理はすべてお使いのブラウザの中だけで行われ、サーバーへの通信は発生しません。

コンポーネント方式とフルURI方式はどちらを選べばいいですか?

クエリパラメータの値(例: 検索キーワードやIDなど、URLの一部として埋め込む文字列)を変換したい場合はコンポーネント方式を選んでください。URL全体(https://から始まる文字列そのもの)を変換したい場合は、構造を表す記号(/や?など)を壊さないフルURI方式を選んでください。

複数行をまとめて変換できますか?

はい。入力欄に複数行貼り付けると、1行ずつ独立して変換され、結果も改行区切りで表示されます。CSVの一列分やリスト形式のデータをまとめて変換したいときに便利です。

デコードでエラーになるのはどんなときですか?

「%」の後に正しい16進数2桁が続かない場合や、パーセントエンコード列を復号した結果が正しいUTF-8のバイト列にならない場合にエラーになります。複数行の一括処理では、1行でも不正な行があると全体がエラー表示になります。

すでにURLエンコードされた文字列を再度エンコードするとどうなりますか?

「%」自体もエンコード対象の文字なので、二重にエンコードされます(例: 「%20」をエンコードすると「%2520」になります)。すでにエンコード済みの文字列を元に戻したい場合は、デコードモードを使ってください。