ForHosting KIT · 開発者向けツール

RFC 3986 パーセントエンコーダ

RFC 3986 の厳密な規則では、hello world!'()* は hello%20world%21%27%28%29%2A になります。そのまま残るのは英字・数字・ハイフン・ピリオド・アンダースコア・チルダだけです。デコードは不完全な列で止まります。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
テキスト
hello world!'()*
計算モード
Encode
結果
結果
hello%20world%21%27%28%29%2A
長さ
28
標準形
RFC 3986
非予約文字
A-Z a-z 0-9 - . _ ~

RFC 3986 は現代の URI 文法と、パーセントエンコードなしで現れてよい非予約文字の集合を定義します。すなわち英字・数字・ハイフン・ピリオド・アンダースコア・チルダです。日常的な多くのツールは JavaScript の encodeURIComponent に従い、感嘆符・アポストロフィ・括弧・アスタリスクを意図的にエスケープしません。本機能は厳格な RFC 3986 写像を双方向に実装します。encode は非予約でない UTF-8 バイトをすべて大文字 %HH にし、decode は不完全または非十六進のパーセント列で即失敗しつつ平文を復元します。

RFC 3986 パーセントエンコードと encodeURIComponent の違い

パーセントエンコードは、許可されないオクテットをパーセント記号と二桁の十六進数に置き換え、文字列が URI 構成要素内を安全に通れるようにします。RFC 3986 第 2.3 節は非予約集合—ALPHA、DIGIT、ハイフン、ピリオド、アンダースコア、チルダ—を挙げ、データ生成時にこれらをパーセントエンコードすべきでないと述べます。

予約 gen-delims と sub-delims、および非 ASCII の UTF-8 バイトを含むその他すべてのオクテットは、値を不透明データとして扱うときにエンコードすべきです。

JavaScript の encodeURIComponent はより緩い未エスケープ集合を使い、感嘆符・アポストロフィ・開き括弧と閉じ括弧・アスタリスクもリテラルのまま残します。

これは歴史的なブラウザフォームの挙動に合いますが、厳密な RFC 3986 構成要素エンコードや、非予約の六記号だけを残す Python・Go・Java・Rust の多くのサーバライブラリとは乖離します。実務上の失敗は微妙です。「hello! world」から作る署名やキャッシュキーは、一方が hello!

world、他方が hello%21world を出すとハッシュが異なります。本ツールは encode 時に常に RFC 写像を適用し大文字 hex を出します。café のような多バイト文字は caf%C3%A9、空白は %20、!

' ( ) * は %21 %27 %28 %29 %2A になります。decode は大小 hex を受け付け、各パーセントの直後に十六進二桁があることを検証し、UTF-8 テキストを再構成します。

厳密な RFC 3986 エンコードが現場で現れる場面

署名ベース文字列は ! ' ( ) * をエスケープ必須と扱うからです。JavaScript 生態系外のモバイル・デスクトップクライアントは、すでに非予約のみ規則に従うライブラリを同梱することが一般的です。

同じ値に encodeURIComponent を使う Node ミドルウェアは、商品名や表示名にアポストロフィや括弧が含まれるときだけ間欠的な署名失敗を起こします。サポート担当はチケットやログから半エンコード文字列を貼り付け、切り詰められたエスケープで黙って文字を捏造せず明確に失敗する decode 経路を必要とします。

Web 基礎を教える教材著者は、汎用 URL エンコーダや Base64 ツールに埋もれさせず、明示的な非予約集合と !'()* の差という検索意図に応える RFC 3986 パーセントエンコード専用ページを望みます。ローカライズ担当は多バイト言語が mojibake なく往復することを検証します。

encodeURIComponent 意味論、構造区切りを保つ軽い完全 URI エンコード、Base64、スラッグ生成が必要なら、この RFC 3986 エンコーダページを過負荷にせず、別の検索意図とランディングとして扱ってください。

OAuth と署名付きクエリ文字列

厳密な RFC 3986 非予約集合でパラメータ値をパーセントエンコードし、! ' ( ) * をエスケープする非 JavaScript 相手と HMAC/OAuth ベース文字列を揃えます。

ログや貼り付け URI 断片のデコード

ログとチケットのパーセントエンコード断片を読みやすい UTF-8 に戻し、不完全または非十六進のパーセント列では厳しく失敗します。

encodeURIComponent との違いは何ですか?

encodeURIComponent は !' ( ) * をエスケープしません。本ツールは RFC 3986 の非予約文字のみ(A–Z a–z 0–9 - ._ ~)に従い、四つの sub-delims を %21 %27 %28 %29 %2A にパーセントエンコードします。

エンコードとデコードの両方はできますか?

はい。 mode を encode(既定)にすると RFC 3986 規則で平文をパーセントエスケープし、mode を decode にするとパーセントエンコード文字列から UTF-8 テキストを復元します。

encode 時の hex は大文字ですか小文字ですか?

encode は大文字の十六進桁(%2A であり %2a ではない)を出し、RFC 3986 の好ましい形に合わせます。decode は大小 hex の両方を受け付けます。

café をパーセントエンコードするとどうなりますか?

caf%C3%A9 になります。é は UTF-8 では複数のバイトになり、それぞれがパーセント記号と大文字の十六進数字二つに置き換わります。デコードすれば元の café に戻ります。

パーセント列が壊れているとどうなりますか?

デコードはその場で止まり、問題の位置を知らせます。末尾に単独で残った % や %G1 のような列が対象です。中途半端にデコードされた文字列が返ることはありません。

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

POSThttps://api.kit.forhosting.com/enc/url-rfc3986

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

curl -X POST https://api.kit.forhosting.com/enc/url-rfc3986 \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world!'\''()"}'
{
  "text": "hello world!'()"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.url_rfc3986",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

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

1リクエストあたり$0.002

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

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

これらは RFC 3986 では sub-delims であり、厳密なゲートウェイ、OAuth 署名、言語横断の HTTP クライアントは %21 %27 %28 %29 %2A を期待することが多いです。契約が「RFC 3986 に従うパーセントエンコード」と定める場合、非予約の六記号だけを残す非 JavaScript 相手と揃える場合、無料ブラウザと有料 API が同一の純関数でバイト一致する場合にご利用ください。成功した API 呼び出しの料金は公開ベース $0.002 /件であり、検証失敗は請求されません。

RFC 3986 パーセントエンコードと encodeURIComponent の違い

末尾の裸パーセント、%G1 のような列、展開後の不正 UTF-8 は、半端なゴミではなく位置付きメッセージ付きの invalid_input になります。経路はネットワーク・乱数シード・壁時計なしの純文字列処理であり、同一入力は常に同一 JSON を返します。成功 API 料金は公開ベース $0.002 /件です。

送信内容と返却内容

mode encode は RFC 3986 の非予約規則で text をパーセントエスケープし、変換結果を result に返します。mode decode は各パーセント列を検証したうえでエンコードを逆にし、平文 UTF-8 を result に返します。検証失敗は前払い残高を消費しません。定番の確認として、空白と感嘆符を含む句をエンコードして %20 と %21 を並べて見る、caf%C3%A9%21 を café!に戻す、末尾が裸パーセントや %ZZ を含む文字列を拒否する、があります。必須の文字列フィールド text と任意の mode を送ってください。mode を省略すると既定は encode であり、単一ペイロードでも有用です。応答は mode と元の text をエコーし、result とその length を含み、standard を RFC 3986、短い unreserved 要約、encodeURIComponent と区別する四つの sub-delim を列挙する also_escaped で契約をラベル付けします。text 欠落、非文字列オブジェクト、未対応の mode、文書化上限を超える文字列、不完全なパーセントエスケープ、パーセント直後の非十六進、デコード後の不正 UTF-8 に関するホストエラーは、いずれも invalid_input と明確な英語メッセージで失敗します。成功 API 料金は公開ベース $0.002 /件で、カタログ内の他の parse 系エンコーダと揃っています。

厳密な RFC 3986 エンコードが現場で現れる場面

署名付きリダイレクト URL、OAuth 1.0 パラメータ列、HMAC 正規化リクエストを組み立てるバックエンドは、ブラウザの encodeURIComponent ではなく RFC 3986 に合うパーセントエンコードを求めることが多くあります。本機能は純 parse エンジンのため、API 料金は成功件あたり公開ベース $0.002 であり、検証失敗は残高を消費しません。

言語横断の golden フィクスチャ

ブラウザがリテラルに残しがちな sub-delim も含め、Python・Go・Java・Rust の URL ライブラリが一致する encode/decode ベクトルを生成します。

パーセント列が不正な場合はどうなりますか?

decode は invalid_input で失敗し、位置と不正エスケープ(不完全な % や非十六進など)を示します。検証失敗に課金はありません。

RFC 3986 パーセントエンコーダの料金は?

ブラウザツールは無料でローカル実行です。API 要求は前払い KIT 残高を成功件あたり $0.002 で使用し、無効入力は請求されません。

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