के बजाय (प्रश्न चिह्न) दिखाते हैं मेरे पास Win7 (x64) पर मानक XAMPP स्थापना है। पिछले प्रोजेक्ट में एन्कोडिंग परेशानियों का मेरा हिस्सा होने के बाद, जहां MySQL एन्कोडिंग php enconding से मेल नहीं खाती है जो बदले में कभी-कभी अन्य एन्कोडिंग में HTML आउटपुट करता है, मैंने utf-8 का उपयोग करके सब कुछ एनकोड करने का निर्णय लिया।यूटीएफ -8 एनकोडेड एचटीएमएल पेज अक्षर
मैं बस एचटीएमएल मार्कअप के साथ शुरू कर रहा हूं और मुझे पहले से ही परेशानी का सामना करना पड़ रहा है।
- मेरे पेज utf-8 का उपयोग कर सहेजा जाता है (कोई बीओएम, मुझे लगता है कि)
// अद्यतन: ऐसा लगता है यह मामला नहीं है। फ़ाइल वास्तव मेंISO_8859-1
के साथ सहेजी गई थी। बाद में शेरम पेंडलेइस के जवाब के लिए धन्यवाद। मुझे वापस जाना था और वांछित "यूटीएफ -8" में मेरी परियोजना सेटिंग्स (जो "आईएसओ -885 9 -1" पर सेट की गई थी) को बदलना पड़ा।<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- मैं php
header('Content-Type:text/html; charset=UTF-8');
इस्तेमाल किया सेट का परीक्षण करने के लिए: AddCharset UTF-8 .php
é
, á
या ¡
जैसे किसी भी विशेष वर्ण केवल �
के रूप में दिखाए जाएंगे। स्रोत कोड देखते समय भी। सभी वर्णों के ऊपर वर्णित एन्कोडिंग सेटिंग्स को छोड़कर सही ढंग से प्रस्तुत किया जाता है लेकिन पता लगाया गया एन्कोडिंग ब्राउज़र पर निर्भर करता है windows-1252
या ISO-8859-1
दिखाता है।
कैसे आते हैं? मैं बहुत परेशान हूँ। मैं सटीक विपरीत व्यवहार की उम्मीद करता।
कोई सलाह स्वागत है, धन्यवाद!
संपादित करें: उम्मीद है कि यह थोड़ा और मदद करता है। यदि आपका .php
फ़ाइलों के किसी भी जो कुछ पाठ मुद्रण, यह भी सही ढंग से utf-8
में एन्कोडिंग है (के रूप में प्रति फ़ायरबग)
HTTP/1.1 200 OK
Date: Sat, 26 Mar 2011 20:49:44 GMT
Server: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.1
Content-Length: 91
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
बिल्कुल! आप सर्वर को "charset = utf-8" कहने के लिए कह रहे हैं जो वास्तव में मामला नहीं है। सर्वर और ब्राउज़र जीवों पर भरोसा कर रहे हैं। सर्वर जो कुछ भी आपको बताएगा, वह कहेंगे, और ब्राउजर मानता है कि जो भी सर्वर एन्कोडिंग के बारे में कहता है - भले ही यह सच न हो। –
जहां तक * जहां * गैर-utf-8 डेटा आ रहा है, वहां आपके द्वारा पोस्ट किए गए कार्यों से बताने का कोई तरीका नहीं है। यदि एक साधारण 'echo ("föö"); "f के रूप में प्रदर्शित होता है, जो यह इंगित कर सकता है कि आपकी .php फ़ाइलों को आईएसओ -885 9 -1 के रूप में सहेजा गया है। यदि डेटा डेटाबेस से प्राप्त किया जा रहा है, तो आप mb_detect_encoding का उपयोग कर सकते हैं () अपने एन्कोडिंग को सत्यापित करने के लिए। –
आप जहां सही और असली अपराधी को इंगित करते हैं। धन्यवाद! ऐसा लगता है कि फ़ाइल utf-8 के रूप में सहेजी नहीं गई थी, मुझे इसे उस वातावरण में वापस जाना पड़ा जहां इसे बनाया गया था। वहां, "प्रोजेक्ट" सेटिंग्स "" आईएसओ -885 9 -1 "पर एक विकल्प सेट किया गया था। इस विकल्प को" यूटीएफ -8 "में बदलना और फ़ाइलों को फिर से सहेजना मुझे वांछित परिणाम मिला। 'हेडर();' सेट करने की कोई आवश्यकता नहीं है और न ही अपाचे कॉन्फ़िगरेशन में संशोधन या * .htaccess *। एक मूर्खतापूर्ण गलती, वास्तव में। दोनों कष्टप्रद और संतुष्ट दोनों। आपके उत्तर और टिप्पणियों के लिए शेरम धन्यवाद! – leugim