सभी इंटरनेट पर, stackoverflow में शामिल है, यह mb_http_input उपयोग करने के लिए सुझाव दिया है ('utf-8') पीएचपी UTF-8 एन्कोडिंग में काम करता है के लिए। उदाहरण के लिए, PHP/MySQL encoding problems. â�� instead of certain characters देखें। दूसरी ओर, PHP मैनुअल का कहना है कि हम PHP स्क्रिप्ट के भीतर इनपुट एन्कोडिंग को ठीक नहीं कर सकते हैं और mb_http_input केवल यह पूछने का एक तरीका है कि इसे सेट करने का कोई तरीका नहीं है। http://www.php.net/manual/en/mbstring.http.php और http://php.net/manual/en/function.mb-httpetinput.php देखें। ठीक है, सवाल से पहले यह संदर्भ का सिर्फ एक स्पष्टीकरण था। ऐसा लगता है कि इनपुट एन्कोडिंग से आंतरिक एन्कोडिंग में रूपांतरण और अंततः आउटपुट एन्कोडिंग में रूपांतरण को नियंत्रित करने के लिए अपाचे + PHP + HTML में बहुत से अनावश्यक आदेश हैं। मैं इसकी उपयोगिता को समझ नहीं पा रहा हूं। उदाहरण के लिए, यदि कुछ बाहरी HTTP क्लाइंट से मूल इनपुट एन्कोडिंग ईयूसी-जेपी है और मैंने आंतरिक एन्कोडिंग को यूटीएफ -8 पर सेट किया है, तो PHP को रूपांतरण करना होगा। क्या मैं सही हू? यदि मैं सही हूं, तो मैं php.ini में इनपुट एन्कोडिंग क्यों सेट करूंगा (केवल मूल को पास करने के बजाए) कि यह तुरंत अगली यूटीएफ -8 आंतरिक एन्कोडिंग में परिवर्तित हो जाएगा? आउटपुट के लिए एक समान सवाल है। मेरी सभी एचटीपीपी फाइलों में, मैं charset = utf-8 के साथ मेटा टैग का उपयोग करता हूं। तो, आउटपुट HTTP एन्कोडिंग तय है। इसके अलावा, PHP.ini में, मैं default_charset सेट कर सकता हूं जो HTTP शीर्षलेख में utf-8 में दिखाई देगा। अंतिम आउटपुट एन्कोडिंग पहले से तय होने पर मैं mb_http_output ('uft-8') का उपयोग करने के लिए परेशान क्यों करूंगा। सारांश में, किसी ने मुझे एक व्यावहारिक ठोस उदाहरण है जहाँ mb_http_output ('UFT-8') स्पष्ट रूप से आवश्यक है और अधिक सामान्य आदेश होते हैं जो अक्सर इस तरह के Dreamweaver के रूप में संपादकों में डिफ़ॉल्ट रूप से डाला जाता है द्वारा बदला नहीं जा सकता दे सकते हैं?mb_http_output() की उपयोगिता क्या है कि आउटपुट एन्कोडिंग आमतौर पर अन्य माध्यमों द्वारा तय की जाती है?
उत्तर
ये दोनों विकल्प सिर्फ सबसे खराब विचार पीएचपी डिजाइनरों के अब तक के बारे में हैं, और वे बुरा विचारों के बहुत सारे किया था जब यह एनकोडिंग के लिए आता है।
तार एक विशिष्ट एन्कोडिंग को बदलने के लिए, एक को पता है कि एन्कोडिंग एक से परिवर्तित किया जाता है। आने वाला डेटा प्रायः एक अविकसित एन्कोडिंग में होता है; सर्वर को बस कुछ बाइनरी डेटा प्राप्त होता है, यह नहीं जानता कि यह किस एन्कोडिंग का प्रतिनिधित्व करता है। आपको घोषित करना चाहिए कि फॉर्म पर accept-charset
विशेषता सेट करके ब्राउज़र को आप कौन सी एन्कोडिंग भेजना चाहते हैं; ऐसा करने से कोई गारंटी नहीं है कि ब्राउजर ऐसा करेगा और यह PHP को नहीं जानता कि एन्कोडिंग की अपेक्षा करने के लिए क्या किया गया है।
एक ही उत्पादन के लिए चला जाता है, PHP तार केवल बाइट सरणी हैं, उनके पास एक संबद्ध एन्कोडिंग नहीं है। मुझे पता नहीं कैसे पीएचपी सोचता है कि यह जानता है कि कैसे इनपुट या उत्पादन पर एक विशिष्ट एन्कोडिंग के लिए मनमाने ढंग से तार कन्वर्ट करना होगा।
आप इस मैन्युअल रूप से संभाल चाहिए, और यह वैसे भी करने के लिए वास्तव में आसान है: ग्राहकों को क्या एन्कोडिंग जैसा कि आप उम्मीद, जांच कि क्या इनपुट सही एन्कोडिंग mb_check_encoding
का उपयोग करने में है करने के लिए की घोषणा (नहीं _detect encoding
या कुछ इस तरह, बस जांच) , अमान्य इनपुट को अस्वीकार करें, पूरे एप्लिकेशन प्रवाह में एक ही एन्कोडिंग में सबकुछ रखने के लिए सावधानी बरतें। यानी, आदर्श रूप से आपके पास कोई रूपांतरण नहीं है जो भी आपके ऐप में है।
आप किसी भी समय परिवर्तित करने के लिए जरूरत करना है, यह एक यूनिकोड सैंडविच बना:, UTF-8 या इनपुट पर एक और यूनिकोड एन्कोडिंग को उम्मीद एन्कोडिंग से इनपुट कन्वर्ट इसे वापस वांछित आउटपुट एन्कोडिंग में बदलने का उत्पादन पर। जब भी आपको कन्वर्ट करने की आवश्यकता होती है, तो सुनिश्चित करें कि आप से कनवर्ट कर रहे हैं। आप एक घोषणा के साथ जादुई रूप से "सभी तारों को यूटीएफ -8" नहीं बना सकते हैं।
इस मानक के बारे में क्या: http://www.w3.org/International/O-HTTP-charset.en.php? यह उपयोगी नहीं है? –
@ डोमिनिक 108 निश्चित रूप से यह उपयोगी है। यह ब्राउज़र को * घोषित करता है * पृष्ठ को एन्कोडिंग में क्या माना जाता है। आपको इसे सेट करने के लिए * चाहिए *। हालांकि मैंने उपरोक्त लिखा कुछ भी नहीं बदलता है। शायद अधिक जानकारी के लिए [एक वेब ऐप में यूनिकोड फ्रंट टू बैक टू हैंडलिंग] (http://kunststube.net/frontback/) देखें। – deceze
मैंने देखा है कि आईई 9 में हेडर में वर्णमाला शामिल नहीं होगा जो यह भेजता है, भले ही मैं फॉर्म में स्वीकृति-वर्णसेट = "यूटीएफ -8" निर्दिष्ट करता हूं। मैंने जो लिखा है उसके विरोध में मैं यह नहीं कह रहा हूं। बस इसे ध्यान में रखते हुए। –
- 1. `enable_shared_from_this` की उपयोगिता क्या है?
- 2. बूस्ट पॉलीगॉन की उपयोगिता क्या है?
- 3. खाली सी ++ फ़ाइल की उपयोगिता क्या है?
- 4. गणित पुस्तकालयों की तुलना अक्सर फ्लॉप द्वारा की जाती है?
- 5. malloc() पर कॉल द्वारा कितनी जगह आवंटित की जाती है?
- 6. क्या आमतौर पर जावा में आंतरिक कक्षाएं उपयोग की जाती हैं? क्या वे "बुरे" हैं?
- 7. आईफोन - एक बहिष्कृत विधि आमतौर पर अप्रचलित हो जाती है?
- 8. यूएसबी या अन्य माध्यमों (सी #)
- 9. घाटे की गणना कैसे की जाती है?
- 10. iframe सामग्री mootools द्वारा छेड़छाड़ की जाती है
- 11. यूनिकोड - आमतौर पर सी ++
- 12. NMTOKEN और NMTOKENS प्रकारों की उपयोगिता क्या है?
- 13. def __init __ (स्वयं) की उपयोगिता?
- 14. सीयूडीए मेमोरी कैसे प्रबंधित की जाती है?
- 15. View.resolveSizeAndState() के तीसरे तर्क की उपयोगिता क्या है?
- 16. क्या WPF के लिए उपयोगिता की तरह एक Spy ++ है?
- 17. क्या मैं स्क्रॉल के रूप में एक टेबल की तालिका बना सकता हूं, हैडरव्यू स्थिति तय की जाती है?
- 18. GetBBox() SVGRect की गणना कैसे की जाती है?
- 19. ठीक है, वैश्विक चर की निंदा की जाती है, सिंगलटन तुच्छ है, विकल्प क्या है?
- 20. UITextView की टेक्स्ट लम्बाई कैसे तय की जा सकती है?
- 21. जीसीसी कैसे तय करता है कि असेंबली कार्यों को आउटपुट करने का आदेश क्या है?
- 22. विधि 'java.lang.reflect.Method.getDefaultValue()' की उपयोगिता?
- 23. क्या ऑन अपग्रेड विधि कभी कॉल की जाती है?
- 24. एप्लिकेशन की ऑनक्रेट() विधि कब कॉल की जाती है?
- 25. JSONPath या अन्य XPath उपयोगिता की तरह; या Jquery JSON
- 26. ओएस स्तर पर नींद कैसे लागू की जाती है?
- 27. सी # में विशेषता जेनरेटेड कोड एट्रिब्यूट की उपयोगिता क्या है?
- 28. बनाने और चींटी की असली उपयोगिता क्या है?
- 29. बिट्ससेट हेरफेर के लिए अभ्यास की सिफारिश की जाती है?
- 30. xgboost गुणवत्ता की गणना कैसे की जाती है?
अक्सर स्टैक ओवरफ़्लो पर वर्ण एन्कोडिंग के साथ काम कर जवाब देती अंशत: या पूर्णत गलत हैं या एक जवाब के लेखक स्पष्ट रूप से समझ नहीं है और अंधा भाग्य से कुछ है कि जैसे कि यह कुछ सही ढंग से कर रहा है लग रहा है पर ठोकर खाई लेकिन वास्तव में नहीं है। बहुत कम उत्तरदायी इसे विश्वसनीय रूप से प्राप्त कर रहे हैं। – Esailija