URL current roop mein JSON document nahi le ja sakta. Braces, quotes, spaces aur ASCII se upar sab kuch query string ya path segment mein jaane se pehle percent encode hona chahiye.
JSON URL encoder aur decoder ka upyog karna
Encode ya Decode chunein, apna document paste karein, aur Convert dabayein.
Encoding wahi rule follow karta hai jo encodeURIComponent karta hai: har
UTF-8 byte jo chhote safe set se bahar hai wo %XX escape ban jaata hai.
{"q":"a b+c","clef":"𝄞"}
encode hota hai %7B%22q%22%3A%22a%20b%2Bc%22%2C%22clef%22%3A%22%F0%9D%84%9E%22%7D,
exactly wohi jo encodeURIComponent same document ke liye produce karta hai,
musical symbol 𝄞 ko chaar alag %XX escapes ke roop mein shaamil karte
hue, kyunki UTF-8 mein ye chaar bytes leta hai.
Akhiri option, aur kyun hai
“Space is a plus sign” on karein aur same document space ko %20 ke bajaye
+ encode karta hai, jabki data mein pehle se maujud literal + abhi bhi
%2B ban jaata hai. Ye distinction isliye hai ki ye toggle hai assumption
ke bajaye: URL ki query string aur form submission bare + ke matlab par
agree nahi karte. Form body mein + space ka matlab hai. URL ke baaki har
hissein mein + literal plus sign hai. Galat guess karna har plus ko space
mein badal deta hai ya har encoded space ko literal plus chhod deta hai,
jo ki sabse aam tareekon mein se ek hai jismein encoded document chupke se
doosri taraf pahunchkar corrupt hota hai.
Decode, aur kyun ek pass mein hota hai
Decode poore string mein har percent-escaped byte gather karta hai aur
unko UTF-8 ke roop mein ek baar decode karta hai, end mein, ek ek escape
ke bajaye. Ek multi-byte character jaise emoji kai alag %XX escapes ke
sequence mein aata hai, to har ek ko individually decode karke aur apna
character maan lena ek emoji ko kai replacement characters mein badal dega.
End mein ek baar decode karna multi-byte text ko intact rakhta hai, aur
ye bhi allow karta hai ki jo bytes valid UTF-8 nahi hain unhein apne
type ka failure report kiya ja sake, jo percent sign ke baad valid hex
digits na ho alag hai, jo decodeURIComponent akela distinguish nahi kar
sakta.
Round tripping
Upar ka example “Space is a plus sign” on karke encode karna aur phir
decode karna exact original document lautata hai, "a b+c" aur musical
symbol dono intact, jo ki asli test hai ki plus aur space handling dono
directions mein agree karte hain.