2012-03-01 12 views
9

मेरे पास कुछ HTML हैं जिनमें कुछ फ़ोरिग वर्ण हैं (€, ó, á)। HTML दस्तावेज़ को बीओएम के बिना यूटीएफ -8 के रूप में सहेजा गया है। जब मैं ब्राउज़र में पृष्ठ को देखता हूं तो फ़ोरग वर्णों को अजनबी चरित्र संयोजनों (â,¬, ó, Ã) के साथ प्रतिस्थापित किया जाता है। यह केवल तभी होता है जब मैं अपने एचटीएमएल दस्तावेज़ को यूओटीएफ -8 के रूप में बीओएम के साथ सहेजता हूं कि पात्र तब ठीक से प्रदर्शित होते हैं।बीओएम के बिना यूटीएफ -8 एचटीएमएल अजीब अक्षर प्रदर्शित करता है

मुझे वास्तव में मेरी फाइलों में बीओएम शामिल करने की ज़रूरत नहीं है, लेकिन क्या किसी को यह पता चला है कि यह ऐसा क्यों कर सकता है? और इसे ठीक करने का एक तरीका? (बीओएम सहित)

+1

HTML के रूप में खुद की पहचान करता है UTF-8 एन्कोड? –

+0

क्या आपने 'मेटा' टैग में वर्णमाला निर्दिष्ट की है? –

+0

क्या आपने ब्राउज़र को सूचित करने के लिए अपने सर्वर और मेटा टैग के साथ उचित चीजें की हैं, वास्तव में, सामग्री यूटीएफ -8 है? –

उत्तर

14

आप शायद अपनी HTML फ़ाइल में सही वर्ण सेट निर्दिष्ट नहीं कर रहे हैं। बीओएम (धन्यवाद @ जुक्का) ब्राउज़र को यूटीएफ -8 मोड में भेजता है; इसकी अनुपस्थिति में, आपको दस्तावेज UTF.8 घोषित करने के लिए अन्य साधनों का उपयोग करने की आवश्यकता है।

यदि आपके पास अपने सर्वर कॉन्फ़िगरेशन तक पहुंच है, तो आप यह सुनिश्चित करना चाहते हैं कि सर्वर गलत वर्ण सेट जानकारी नहीं भेज रहा है। उदाहरण देखें How to change the default encoding to UTF-8 for Apache?

आप केवल अपने HTML के लिए उपयोग किया है, तो आपके दस्तावेज़ के मुख्य में इस मेटा टैग जोड़ें, चाल करना चाहिए:

<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'> 

या @Mathias बताते हैं, नए एचटीएमएल 5

<meta charset="utf-8"> 

(मान्य केवल यदि आप एक एचटीएमएल 5 doctype का उपयोग करें, जो के खिलाफ कोई अच्छा तर्क किसी भी अधिक भले ही आप एचटीएमएल 5 मार्कअप का उपयोग नहीं करते है।)

+5

+1। आजकल आप '<मेटा charset = "utf-8"> 'का उपयोग कर सकते हैं। (यदि आप 2012 में HTML5 DOCTYPE का उपयोग नहीं कर रहे हैं, तो आप इसे गलत कर रहे हैं।) –

+0

@Mathias अच्छा बिंदु, जोड़ा गया, धन्यवाद –

+0

लक्षण बताते हैं कि ब्राउज़र परीक्षण वास्तव में बीओएम को सुनता है: स्पष्ट रूप से न तो सर्वर नहीं दस्तावेज़ स्वयं एन्कोडिंग की घोषणा करता है, ब्राउज़र को एन्कोडिंग अनुमान लगाने या अनुमान लगाने के लिए मजबूर करता है; और ऐसा लगता है कि यह यूटीएफ -8 को इंगित करने के रूप में एक बीओएम लेता है, जो सही समझ में आता है (और बीओएम की अनुपस्थिति में, डेटा आईएसओ -885 9 -1, विंडोज़ -1252, या कुछ समान है, जो समझाता है, ¬, ó, एक सामान)। –

2

सम्मिलित में।
या सर्वर साइड
पर हैडर Content-Type: text/html;charset=utf-8 तुम भी .htaccess में जोड़ सकता हूँ कर सकते हैं सेट: AddDefaultCharset UTF-8 अधिक जानकारी के लिए यहाँ http://www.askapache.com/htaccess/setting-charset-in-htaccess.html

+0

ध्यान दें कि '<मेटा charset =" utf-8 ">' केवल HTML5 के लिए है। एचटीएमएल 4 और इससे पहले, '<मेटा http-equiv- "सामग्री-प्रकार" सामग्री = "टेक्स्ट/एचटीएमएल; charset = utf-8">' का उपयोग करें। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^