PHP json_encode फ़ंक्शन UTF-8 स्ट्रिंग्स को हेक्साडेसिमल इकाइयों में परिवर्तित करता है: इसे क्यों और कैसे हल करें
PHP json_encode फ़ंक्शन PHP वेरिएबल्स को एनकोड कर सकता है JSON (जावास्क्रिप्ट ऑब्जेक्ट नोटेशन) में। हालाँकि, UTF-8 एन्कोडिंग में यूनिकोड वर्णों के साथ काम करते समय, फ़ंक्शन उन्हें डिफ़ॉल्ट रूप से हेक्साडेसिमल इकाइयों में परिवर्तित कर सकता है। ऐसा इसलिए है क्योंकि JSON मूल रूप से UTF-8 वर्णों का समर्थन नहीं करता है, जो गैर-ASCII वर्णों का प्रतिनिधित्व करने वाले मल्टी-बाइट वर्ण हैं।
PHP UTF-8 स्ट्रिंग्स को हेक्साडेसिमल इकाइयों में क्यों परिवर्तित करता है?
PHP का json_encode फ़ंक्शन JSON विनिर्देश का उपयोग करता है, जो निर्देश देता है कि यूनिकोड वर्ण जो ASCII वर्णों के रूप में प्रस्तुत नहीं किए जा सकते, उन्हें हेक्साडेसिमल एस्केप अनुक्रमों का उपयोग करके एन्कोड किया जाना चाहिए। यह पुराने अनुप्रयोगों और उपकरणों के साथ संगतता सुनिश्चित करता है जो UTF-8 का समर्थन नहीं कर सकते हैं।
रूपांतरण समस्या का समाधान
इस समस्या को हल करने और UTF-8 के रूपांतरण से बचने के लिए हेक्साडेसिमल इकाइयों के लिए स्ट्रिंग्स, PHP ने संस्करण 5.4.0 में JSON_UNESCAPED_UNICODE विकल्प पेश किया। यह विकल्प json_encode को गैर-ASCII वर्णों के लिए हेक्साडेसिमल एस्केप अनुक्रमों के बजाय यूनिकोड कोड बिंदुओं का उपयोग करने का निर्देश देता है।
उदाहरण
मान लीजिए आपके पास निम्नलिखित PHP स्क्रिप्ट है:
यह कोड निम्नलिखित JSON स्ट्रिंग को आउटपुट करेगा, जहां सिरिलिक वर्ण हेक्साडेसिमल इकाइयों के रूप में एन्कोड किए गए हैं:
"\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430."
यूटीएफ-8 वर्णों को सीधे आउटपुट करने के लिए, आप JSON_UNESCAPED_UNICODE विकल्प का उपयोग कर सकते हैं:
यह निम्नलिखित JSON स्ट्रिंग का उत्पादन करेगा, जहां सिरिलिक वर्णों को उनके यूनिकोड कोड बिंदुओं का उपयोग करके दर्शाया जाता है:
"База данни грешка."
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3