মূল বিষয়বস্তুতে যান
CuteJSON
↑↓ নেভিগেট Enter নির্বাচন Esc বন্ধ

যেভাবে কুয়েরি স্ট্রিংয়ের জন্য JSON URL এনকোড করবেন

প্রকাশিত 2 মিনিট পড়ুন Akash Kinkar Pandey দ্বারা

একটি URL বর্তমান অবস্থায় একটি JSON ডকুমেন্ট বহন করতে পারে না। ব্রেস, কোয়োট, স্পেস এবং ASCII এর উপরে সবকিছু একটি কুয়েরি স্ট্রিং বা পাথ সেগমেন্টে যাওয়ার আগে পার্সেন্ট এনকোড করতে হয়।

JSON URL এনকোডার এবং ডিকোডার ব্যবহার করা

এনকোড বা ডিকোড বেছে নিন, আপনার ডকুমেন্ট পেস্ট করুন, এবং রূপান্তর চাপুন। এনকোডিং URIComponent এর মতো একই নিয়ম অনুসরণ করে: একটি ছোট নিরাপদ সেটের বাইরে প্রতিটি UTF-8 বাইট %XX এস্কেপ হয়।

{"q":"a b+c","clef":"𝄞"}

এনকোড হয় %7B%22q%22%3A%22a%20b%2Bc%22%2C%22clef%22%3A%22%F0%9D%84%9E%22%7D, ঠিক encodeURIComponent একই ডকুমেন্টের জন্য যা উৎপাদন করে তার সাথে সম্পূর্ণ মিলিয়ে, সংগীত প্রতীক 𝄞 সহ চারটি আলাদা %XX এস্কেপ হিসেবে, কারণ UTF-8 এ এটি চার বাইট নেয়।

একমাত্র অপশন, এবং কেন এটি আছে

“স্পেস একটি প্লাস চিহ্ন” চালু করুন এবং একই ডকুমেন্ট স্পেসকে %20 এর পরিবর্তে + হিসেবে এনকোড করে, যখন ডাটায় ইতিমধ্যে থাকা লিটারাল + এখনো %2B হয়। এই পার্থক্যটি এটি কেন একটি টগল অনুমানের পরিবর্তে: একটি URL এর কুয়েরি স্ট্রিং এবং একটি ফর্ম সাবমিশন একটি খালি + এর অর্থে সামঞ্জস্য হয় না। একটি ফর্ম বডিতে, + একটি স্পেসের অর্থ। URL এর অন্য সব অংশে, + একটি লিটারাল প্লাস চিহ্ন। ভুল অনুমান আপনার ডাটায় প্রতিটি প্লাসকে একটি স্পেসে পরিণত করে, বা প্রতিটি এনকোড করা স্পেসকে লিটারাল প্লাস রাখে, যা সবচেয়ে সাধারণ উপায়গুলোর মধ্যে একটি যে এনকোড করা ডকুমেন্ট চুপচাপে অন্য পাশে পৌঁছে নষ্ট হয়।

ডিকোডিং, এবং কেন এটি একটি পাশে হয়

ডিকোডিং সম্পূর্ণ স্ট্রিংয়ে প্রতিটি পার্সেন্ট-এস্কেপ বাইট সংগ্রহ করে এবং একবারে, শেষে, UTF-8 হিসেবে ডিকোড করে, একবারে একটি এস্কেপের পরিবর্তে। একটি মাল্টি-বাইট অক্ষর যেমন ইমোজি একাধিক আলাদা %XX এস্কেপের ক্রমে আসে, তাই প্রতিটি আলাদাভাবে ডিকোড করা এবং তাকে নিজের অক্ষর মনে করা একটি ইমোজিকে একাধিক প্রতিস্থাপন অক্ষরে পরিণত করে। শেষে একবারে ডিকোড করা যা মাল্টি-বাইট টেক্সটকে অক্ষত রাখে, এবং এটিও অনুমতি দেয় যে UTF-8 বৈধ নেই এমন বাইটকে তাদের নিজের ধরনের ব্যর্থতা হিসেবে রিপোর্ট করা যায়, একটি পার্সেন্ট চিহ্নের পরে বৈধ হেক্স সংখ্যা নেই তার থেকে আলাদা, যা decodeURIComponent একা আলাদা করতে পারে না।

রাউন্ড ট্রিপ

উপরের উদাহরণ “স্পেস একটি প্লাস চিহ্ন” চালু করে এনকোড করে এবং তারপর আবার ডিকোড করলে সম্পূর্ণ মূল ডকুমেন্ট ফিরিয়ে দেয়, "a b+c" এবং সংগীত প্রতীক উভয়ই অক্ষত, যা প্রকৃত পরীক্ষা যে প্লাস এবং স্পেস হ্যান্ডলিং উভয় দিকেই সামঞ্জস্যপূর্ণ।

সব পোস্টে ফিরুন