URL エンコーディング:クエリパラメータとパスをパーセントエンコードする
パーセントエンコーディングは安全でない文字を %XX に置き換え、任意のテキストを URL に安全に含められるようにします。どの文字をエスケープし、どう戻すかを把握しましょう。
パーセントエンコーディングとは
URL 内で許可されない文字は、パーセント記号と 2 桁の 16 進数に置き換えられます。スペースは %20、& は %26 になります。
encodeURIComponent と encodeURI
単一のクエリ値やパスセグメントには encodeURIComponent を使ってください —— /, ?, &, = をエスケープしてくれます。encodeURI は URL 全体に対してだけ使い、こうした文字は構造として残します。
+ と %20 の罠
クエリ文字列では、空白は + (フォームエンコーディング)または %20 として現れる可能性があります。decodeURIComponent は + を空白に変換しません。フォームエンコードされたデータを扱う場合は、デコード前に + を置換しておきます。
二重エンコーディング
すでにエンコード済みの文字列をもう一度エンコードすると %20 は %2520 になります。出力に %25 が並んでいたら、その値は 2 回エンコードされています —— 変化しなくなるまで繰り返しデコードしてください。
予約文字と非予約文字
RFC 3986 は URL の文字を予約文字(: / ? # などの gen-delims、& = などの sub-delims)と非予約文字(英数字と - . _ ~)に分けます。非予約文字は決してエンコード不要です。予約文字は値として現れるときだけエンコードが必要で、URL の構造として使われる場合は不要です。
URL 全体のエンコードと単一値のエンコード
encodeURI は URL 全体向け:: / ? # & = を そのまま残し、URL の形を保ちます。encodeURIComponent はパスセグメントやクエリパラメータに入れる単一の値向け:それらの構造文字をエスケープして、値が枠を超えて漏れないようにします。
プログラムで安全にクエリ文字列を組み立てる
文字列連結より、URLSearchParams(ブラウザ)や url.URLSearchParams(Node)を優先してください。どちらも鍵と値を適切にエンコードし、複数値のパラメータも扱え、最もよくあるミス —— & や = を含むパラメータをエンコードし忘れる —— を防いでくれます。
JSON 修復ガイド
トピックハブ
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
個別ガイド
- Base64 文字列のデコ ード方法(および JWT ペイロード)
- YAML を JSON に変換(インデントエラーを避ける)
- JSON を CSV に変換:オブジェクト配列をフラット化
- JSON を XML に変換:ルート要素・属性・配列
- JSON を文字列リテラルとしてエスケープ(二重エンコードされた JSON のデコード)
- JSON の末尾カンマを修正
- JSON のシングルクォートを修正
- JSON の引用符なしキーを修正
- LLM が出力した JSON を修復する
- JSON 解析エラー「Expected Property Name」を修正
- JSON と JavaScript オブジェクトリテラルの違い
- API リクエスト前に JSON を検証する
- JSON フォーマッタ vs JSON Repair
- JSON の Unexpected Token エラーを修正
- JSON から JavaScript オブジェクトへの変換ツール