コンテンツへスキップ
uencoder

オブジェクトから URL クエリ文字列を構築する

JavaScript オブジェクトから適切にエンコードされたクエリ文字列を構築します。配列、ネストしたオブジェクト、特殊文字を正しく扱います。

  1. 1

    クエリ文字列の構築には、& で結合する key=value ペア、キーと値のパーセントエンコード、配列の扱い(キーの繰り返しまたは括弧表記)、undefined/null 値の省略が必要です。パラメータの順序は、キャッシュや署名検証にとって重要な場合があります。

  2. 2
    URL エンコーダー →

    各キーと値をパーセントエンコードします。スペース → %20、& → %26、= → %3D、非 ASCII → UTF-8 のパーセントエンコード。クエリ文字列の値には encodeURIComponent を使いましょう(not encodeURI)。予約文字をすべてエンコードするためです。

  3. 3
    URL パーサー →

    構築した URL をパースして検証します。パースされたクエリ文字列は元のオブジェクトと一致するはずです。この往復テストで、エンコードのエラーと構造上の問題を検出できます。

  4. 4

    URL エンコードのワークフローを使うと、ネストしたパラメータや特殊文字を適切に扱いながら、ペイロードオブジェクトをクエリ文字列にエンコードできます。

よくある質問

encodeURIComponent と encodeURI のどちらを使うべき?
クエリ文字列のキーと値には encodeURIComponent を使いましょう。予約文字(&、=、+、/ など)をすべてエンコードします。URL 全体には encodeURI を使います。こちらは URL の構造文字(?, &, =, /)を保持するためです。誤った方を使うとエンコードのバグが発生します。
undefined と null はどう扱うの?
undefined と null の値は省略しましょう。クエリ文字列に含めるべきではありません。falsy 値の扱い:0、false、空文字列は key=0、key=false、key= として含めます。API の契約に基づいて判断してください。不在(absent)と空(empty)を区別する API もあります。

このタスクを解決するワークフロー

Base32 から Hex へ変換
Base32 をデコードし、デバッグのために Hex として再エンコードする。
パイプライン
Base64 から Hex へ変換
Base64 文字列を生バイトにデコードし、検査や相互運用のために Hex として再エンコードする。
パイプライン
Binary から Hex へ変換
Binary(base-2)文字列をバイト値にデコードし、Hex として再エンコードする。
パイプライン
ChaCha20 暗号化後に Hex エンコード
ChaCha20 で暗号化し、暗号文を Hex エンコードする。
パイプライン
URL 転送用の JSON ペイロードのエンコード
JSON ドキュメントを URL パラメータ用に準備する: 整形、Base64 エンコード、パーセントエンコード — ネストされたパラメータデコードチェーンの正確な逆順。
パイプライン
Hex エンコード後デコードのラウンドトリップ検証
テキストを Hex にエンコードし、デコードしてラウンドトリップが元のデータを保持することを検証する。
パイプライン
テキストの Hex エンコードと分析
テキストを Hex 表現に変換し、その後 Hex 出力の文字統計を計算する。
パイプライン
Multibase から Hex へ変換
Multibase をデコードし、プレーン Hex として再エンコードする。
パイプライン
Octal から Hex へ変換
Octal をデコードし、コンパクトな表現のために Hex として再エンコードする。
パイプライン
Punycode デコードと URL 解析
Punycode ドメインをデコードし、その後完全な URL を解析する。
パイプライン
テキスト反転と Hex エンコード表示
文字列を反転し、その後 Hex 表現を検査する — バイトオーダーの問題やエンコーディングパズルのデバッグに有用。
パイプライン
SHA-512 ハッシュ後に Hex エンコード
SHA-512 ハッシュを計算し、可読性のために Hex としてエンコードする。
パイプライン
Kebab Case と URL エンコード
kebab-case に変換し、安全な URL スラッグのために URL エンコードする。
パイプライン
URL デコードと Hex バイト表示
URL エンコード文字列をパーセントデコードし、低レベル分析のために Hex バイト表現を表示する。
パイプライン
URL デコードと解析
URL デコードし、その後 URL を構成要素に解析する。
パイプライン
URL エンコード後 Base64 二重エンコード
URL エンコードし、API ペイロードの二重エンコードのために Base64 エンコードする。
パイプライン
URL 転送用テキストペイロードのエンコード
テキストをパーセントエンコードし、安全な URL パラメータ転送のために Hex 表現を表示する。
パイプライン
XXencode 後 Hex エンコード
テキストを XXencode し、その後結果を Hex エンコードする。
パイプライン

関連ツール