ForHosting KIT · サイト取得・監視

URLエンコード・デコード

このツールは通常のUnicodeテキストをRFC 3986準拠のパーセント符号へ変換し、正しい符号から読みやすいテキストを復元します。URLの部品として安全に渡す場合はエンコードを、ログ、リダイレクト、クエリ、コピーしたリンクを読む場合はデコードをお選びください。処理は決定的で状態を保持せず、不正なシーケンスを曖昧な結果に置き換えずエラーとして通知します。ブラウザーで直接実行でき、APIでも1項目あたり$0.002で同じ処理をご利用いただけます。

● Beta無料・ブラウザ内で実行
ご利用方法 ウェブAPIメールTelegramアプリ 近日

パーセント符号化が必要になる場面

URLでは、スラッシュはパス区切り、疑問符はクエリ開始、アンパサンドはパラメーター区切り、等号は名前と値の区切り、ハッシュはフラグメント開始という役割を持ちます。これらがデータそのものに含まれる場合、URL構造と混同されないようにする必要があります。本機能は入力をUTF-8へ変換し、RFC 3986の非予約文字以外の各バイトを、パーセント記号と2桁の16進数で表します。英数字、ハイフン、ピリオド、アンダースコア、チルダはそのまま残ります。空白はプラス記号ではなく<code>%20</code>になります。入力は完成済みURLではなく1つの値として扱うため、予約記号も符号化します。組み立て済みURL全体ではなく、挿入する部品だけをエンコードしてください。

厳密なデコードでデータを守る仕組み

値を返す前に入力全体を検査します。各パーセント記号の直後には16進数が2桁必要なため、<code>%</code>、<code>%2</code>、<code>%GG</code>は入力エラーになります。さらに、符号化されたバイト列は正しいUTF-8でなければなりません。見た目が正しい並びでも壊れたテキストの場合があり、置換文字で受け入れるとログやコールバック、取込データの破損を隠してしまいます。そのため明示的にエラーを返します。プラス記号を空白へ変換するHTMLフォーム方式は適用しません。また処理は1回だけです。<code>%2520</code>は空白ではなく<code>%20</code>になります。二重デコードを防ぐため、2回目が必要な場合は結果を明示的に再送してください。

結果を安全に利用する方法

モードを明確に選び、1つの論理値を表す文字列だけをご指定ください。エンコード結果へ別のURLエンコーダーを適用すると、各パーセント記号が<code>%25</code>となり二重符号化されます。デコード結果はデータとして扱い、信頼済みのマークアップ、ファイルパス、命令として使用しないでください。文字の復元は、次の利用先に対する安全性を保証しません。この区別はコールバック、ログ、リンク正規化、識別子の比較で重要です。ネットワーク、乱数、時計、保存状態を使わないため、同じ入力から常に同じ出力が得られます。単独の値の確認にはブラウザーを、自動テストや処理にはAPIをご利用ください。APIは1項目あたり$0.002です。

クエリ値の準備

空白、アンパサンド、Unicode、予約記号を1つの値に保つため、入力テキストを符号化します。

符号化ログの確認

取得したパスやパラメーターを復元し、元の内容を読みながら壊れたエスケープを検出します。

連携動作のテスト

安定したテストデータを作り、コールバックや処理がRFC 3986を1層だけ復元することを確認します。

APIリクエストの料金はいくらですか?

APIは1項目あたり$0.002です。ページでは対話形式でも実行できます。

スラッシュや疑問符は残りますか?

残りません。入力を1つの値として扱うため、予約記号もパーセント符号化します。

空白はプラス記号になりますか?

なりません。RFC 3986では空白を%20と表します。プラス記号の規則はHTMLフォーム方式です。

不正なパーセント表記はどうなりますか?

不足した表記、16進数でない表記、正しいUTF-8にならないバイト列は入力エラーになります。

複数回デコードされますか?

されません。各リクエストは1回だけ処理します。2層目が意図された場合に限り、結果を再送してください。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/web/url-encode-decode

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/web/url-encode-decode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world/café?x=1","mode":"encode"}'
{
  "text": "hello world/café?x=1",
  "mode": "encode"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "web.url_encode_decode",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

timeout_sec30
max_crawl_pages25
HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

KITの完全なドキュメントを見る →