"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Windows-1252 एन्कोडिंग के साथ PHP में सिंगल कोट्स एन्कोड करते समय `json_encode()` विफल क्यों होता है?

Windows-1252 एन्कोडिंग के साथ PHP में सिंगल कोट्स एन्कोड करते समय `json_encode()` विफल क्यों होता है?

2024-11-12 को प्रकाशित
ब्राउज़ करें:284

Why Does `json_encode()` Fail When Encoding Single Quotes in PHP with Windows-1252 Encoding?

PHP का json_encode सिंगल कोट्स के साथ विफलता

PHP stdClass ऑब्जेक्ट ($पोस्ट) वाले परिदृश्य में, json_encode() अप्रत्याशित रूप से कार्य करता है पोस्ट_टाइटल प्रॉपर्टी को एन्कोड करने में विफल रहता है, जिसके परिणामस्वरूप JSON आउटपुट में शून्य मान होता है। डेटाबेस के स्पष्ट UTF-8 एन्कोडिंग के बावजूद, ऐसा प्रतीत होता है कि डेटा पुनर्प्राप्ति प्रक्रिया सही ढंग से कॉन्फ़िगर नहीं की जा सकती है।

कारण: गलत एन्कोडिंग

JSON एन्कोडिंग समस्या पोस्ट_शीर्षक में एकल उद्धरण वर्ण की गलत एन्कोडिंग से उत्पन्न होती है। विशेष रूप से, वर्ण को Windows-1252 में एन्कोड किया गया है, जिसके परिणामस्वरूप हेक्स मान 92 है, जो मान्य UTF-8 वर्ण नहीं है।

समाधान: डेटाबेस कनेक्शन एन्कोडिंग सेट करें

इस समस्या को हल करने के लिए, डेटाबेस कनेक्शन एन्कोडिंग को UTF-8 पर सेट करना आवश्यक है। प्रयुक्त विधि नियोजित एपीआई पर निर्भर करती है:

  • MySQL: mysql_set_charset("utf8")
  • MySQLi: mysqli_set_charset("utf8")
  • PDO (PHP > = 5.3.6): कनेक्शन स्ट्रिंग में वर्णसेट पैरामीटर
  • पीडीओ (पहले के संस्करण): SET NAMES utf8

अतिरिक्त विचार

यह ध्यान रखना महत्वपूर्ण है कि कनेक्शन एन्कोडिंग सेट करने से यह सुनिश्चित होता है कि डेटाबेस से पुनर्प्राप्त डेटा ठीक से है UTF-8 में एन्कोड किया गया। हालाँकि, यदि डेटा गलत एन्कोडिंग में संग्रहीत है, जैसे कि Windows-1252, तो utf8_encode() या अन्य माध्यमों से मैन्युअल रूपांतरण आवश्यक हो सकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3