दिलचस्प पोस्ट
एंड्रॉइड में टेक्स्ट की लंबाई को सीमित करें android.os.NetworkOnMainThreadException के साथ एंड्रॉइड 4.2 2.0 में डाउनलोड प्रगति कैसे प्राप्त करें? कैसे sed के साथ स्लैश युक्त स्ट्रिंग को बदलने के लिए? ब्राउज़र में जावास्क्रिप्ट से SQL सर्वर डेटाबेस से कैसे जुड़ें? एंड्रॉइड स्टूडियो में पैकेज का नाम कैसे बदल सकता है? जांचने के लिए पायथनिक तरीका है कि कोई फाइल मौजूद है या नहीं? किसी स्थिति या कम पर सेट बिट्स को गिनने का कारगर तरीका क्या है? एक DOM वातावरण में reflow कब होता है? एक प्रमुख क्षेत्र द्वारा एक MongoDB संग्रह में सभी डुप्लिकेट दस्तावेज़ खोजें MacOS में टर्मिनल से शुभकामनाएं खोलें गतिशील रूप से तैयार किए गए तत्वों पर नॉकआउट डेटा-बाइंड बहुत बड़ी 'एन' के लिए नौवें फाइबोनैचि संख्या खोजना "संसाधन नहीं मिल सकता है।" त्रुटि जब url के अंत में "डॉट" होती है क्यों दस्तावेज़ है। गेट एलेमेंट बीआईआईडी वापस लौट रहा है

"सामग्री-प्रकार: एप्लिकेशन / जेएसन; charset = utf-8 "वास्तव में मतलब है?

जब मैं अपनी आरएएसटी सेवा में एक JSON बॉडी के साथ एक पोस्ट अनुरोध करता हूं, तो मैं इसमें Content-type: application/json; charset=utf-8 संदेश शीर्षलेख में Content-type: application/json; charset=utf-8 इस शीर्षलेख के बिना, मुझे सेवा से एक त्रुटि मिलती है मैं सफलतापूर्वक Content-type: application/json उपयोग कर सकते हैं Content-type: application/json बिना ;charset=utf-8 भाग।

charset=utf-8 क्या करता है? मुझे पता है कि यह वर्ण एन्कोडिंग निर्दिष्ट करता है लेकिन सेवा इसके बिना ठीक काम करती है क्या इस एन्कोडिंग में वर्णों को सीमित किया जा सकता है जो संदेश के शरीर में हो सकता है?

वेब के समाधान से एकत्रित समाधान ""सामग्री-प्रकार: एप्लिकेशन / जेएसन; charset = utf-8 "वास्तव में मतलब है?"

शीर्ष लेख सिर्फ यह दर्शाता है कि सामग्री को किस प्रकार एन्कोड किया गया है। सामग्री से सामग्री का प्रकार निकालना संभव नहीं है, यानी आप केवल सामग्री को देखना न भूलें और इसके साथ क्या करना है यह जान सकते हैं। यही HTTP हेडर हैं, वे प्राप्तकर्ता को बताते हैं कि वे किस तरह की सामग्री (अनुमानतः) से निपटते हैं।

Content-type: application/json; charset=utf-8 Content-type: application/json; charset=utf-8 सामग्री को JSON स्वरूप में निर्दिष्ट करता है, जो यूटीएफ -8 कैरेक्टर एन्कोडिंग में एन्कोड किया गया है। जेएसओएन के लिए डिफ़ॉल्ट (केवल?) एन्कोडिंग यूटीएफ -8 है, क्योंकि एन्कोडिंग को निर्दिष्ट करना जेसनॉन के लिए कुछ बेमानी है। इसलिए इस मामले में, प्राप्तकर्ता सर्वर जाहिर है कि यह जानकर खुश है कि यह JSON के साथ काम कर रहा है और मानता है कि एन्कोडिंग डिफ़ॉल्ट रूप से यूटीएफ -8 है, यही कारण है कि यह हेडर के साथ या बिना काम करता है।

क्या इस एन्कोडिंग में वर्णों को सीमित किया जा सकता है जो संदेश के शरीर में हो सकता है?

नहीं, आप हेडर और शरीर में कुछ भी भेज सकते हैं। लेकिन, अगर दोनों मेल नहीं खाते हैं, तो आपको गलत परिणाम मिल सकते हैं। यदि आप शीर्षक में निर्दिष्ट करते हैं कि सामग्री UTF-8 एन्कोडेड है लेकिन आप वास्तव में लैटिन 1 एन्कोडेड सामग्री भेज रहे हैं, तो रिसीवर कचरा डेटा का उत्पादन कर सकता है, लैटिन 1 एन्कोडेड डेटा को यूटीएफ -8 के रूप में परिभाषित करने की कोशिश कर रहा है। यदि निश्चित रूप से आप यह निर्दिष्ट करते हैं कि आप लैटिन 1 एन्कोडेड डेटा भेज रहे हैं और आप वास्तव में ऐसा कर रहे हैं, तो हाँ, आप लैटिन 1 में एन्कोड कर सकते हैं 256 वर्णों तक सीमित हैं।

@ चेतना के दावे को सिद्ध करने के लिए कि डिफ़ॉल्ट JSON एन्कोडिंग UTF-8 है …

आईईटीएफ आरएफसी 4627 से :

JSON पाठ को यूनिकोड में एन्कोड किया जाएगा डिफ़ॉल्ट एन्कोडिंग UTF-8 है

चूंकि JSON पाठ के पहले दो अक्षर हमेशा ASCII वर्ण होंगे [RFC0020], यह निर्धारित करना संभव है कि क्या एक ओक्टैट स्ट्रीम UTF-8, UTF-16 (BE या LE) या यूटीएफ -32 (बीई या ले) पहले चार ऑक्टेट में नल के पैटर्न को देखते हुए।

  00 00 00 xx UTF-32BE 00 xx 00 xx UTF-16BE xx 00 00 00 UTF-32LE xx 00 xx 00 UTF-16LE xx xx xx xx UTF-8 

ध्यान दें कि IETF RFC4627 को IETF RFC 7158 द्वारा स्थान दिया गया है अनुभाग में [8.1] इससे पहले ड्यूड द्वारा लिखित पाठ को पुनः कहा जा रहा है:

 Implementations MUST NOT add a byte order mark to the beginning of a JSON text.