2015-09-18 2 views
5

मैं निम्नलिखित सीएसएस का उपयोग कर रहा एक बटन के लिए संदेश है कि एक टैग को हटा देगा स्थापित करने के लिए:बटन सेट करते समय मैं "×" के बजाय यादृच्छिक रूप से स्ट्रिंग "Ã-" क्यों प्राप्त करता हूं: {content} के बाद?

button.close:after { 
    content: '×'; 
} 

यह इस तरह एक अच्छी लग रही बटन में परिणाम:

nice looking close button

लेकिन बेतरतीब ढंग से स्ट्रिंग × स्ट्रिंग Ã- द्वारा प्रतिस्थापित हो जाती है। मैंने पहली बार सोचा कि यह एन्कोडिंग से संबंधित हो सकता है लेकिन अगर वास्तव में यह समस्या थी तो मुझे लगता है कि यह यादृच्छिक रूप से नहीं होगा। यह कम आवृत्ति पर होता है और इस पल में यह नहीं हो रहा है (जैसे ही यह फिर से होता है, एक अन्य प्रिंट स्क्रीन के साथ प्रश्न अपडेट करेगा)।

यह सीएसएस कोड .less फ़ाइल से आता है जो मैं संकलित कर रहा हूं और फिर छोटा कर रहा हूं और फिर संयोजित कर रहा हूं।

मैं कैसे सुनिश्चित कर सकता हूं कि स्ट्रिंग × हर समय दिखाया जाएगा?

+2

"यादृच्छिक रूप से" क्या अर्थ है? रीलोड करने के बाद? फ़ाइल बदलने के बाद? स्पॉटैडिक रूप से साइट लोड होने पर, उपयोगकर्ता इंटरैक्शन के बिना? किसी भी तरह से, यह शायद * एन्कोडिंग से संबंधित है। –

+1

'cchetet" utf-8 "जोड़ने का प्रयास करें; 'आपके सीएसएस –

+0

में हाँ, यह sporadically होता है। बहुत अजीब! उदाहरण के लिए; मुझे बस यह समस्या थी तो मैंने सभी सीएसएस फ़ाइलों को फिर से संकलित किया और क्रोम पर सीएमडी + आर मारा। समस्या दूर नहीं गई थी। तब मैंने इसे 3 बार मारा और यह फिर से काम किया! यह शायद ही कभी ऊब नहीं है क्योंकि यह शायद ही कभी होता है। समस्या यह है कि यह ज्यादातर होता है जब मैं किसी के लिए सॉफ्टवेयर का प्रदर्शन कर रहा हूं और यह ** शर्मनाक ** है। – renatoargh

उत्तर

3

कि हस्ताक्षर के लिए 'आईएसओ' मूल्य का उपयोग करके देखें - \00d7

यहाँ की जांच: https://css-tricks.com/snippets/html/glyphs/

+0

'@charset" utf-8 "के साथ अपने सुझाव का प्रयास कर रहा है;'! धन्यवाद – renatoargh

0

आप उन वर्ण देखते हैं तो आप शायद सिर्फ वर्ण एन्कोडिंग ठीक से निर्दिष्ट नहीं किया। चूंकि वे वर्ण परिणाम होते हैं जब एक यूटीएफ -8 बहु-बाइट स्ट्रिंग का अर्थ एकल-बाइट एन्कोडिंग जैसे आईएसओ 885 9 -1 या विंडोज -1252 के साथ किया जाता है।

उन्हें सामान्य ISO-8859-1 वर्णों में बदलने के लिए utf8_decode() का उपयोग करें। http://php.net/manual/en/function.utf8-decode.php

या

<meta charset="UTF-8"> 

जोड़ें या अपने PHP स्क्रिप्ट के शीर्ष पर header("Content-Type: text/html; charset=utf-8"); का उपयोग करें।

5

multiplication character में यूटीएफ -8 अनुक्रम 0xC3 0x97 है। जब इसे Windows-1252 character set का उपयोग करके डीकोड किया जाता है तो यह × (A tilde, em dash) बन जाता है।

तो, समस्या वास्तव में है कि सीएसएस को यूटीएफ -8 के बजाय विंडोज -1252 के रूप में डीकोड किया गया है। सीएसएस को सामान्य रूप से HTML दस्तावेज़ के रूप में डीकोड किया जाता है, इसलिए ऐसा लगता है कि पृष्ठ में कोई चरित्र सेट विनिर्देश नेटियर नहीं है और न ही HTTP शीर्षलेख में। यह ब्राउज़र को यह अनुमान लगाने के लिए मजबूर करता है कि एन्कोडिंग क्या है। चूंकि ब्राउजर किसी भी उपलब्ध डेटा (और एल्गोरिदम ब्राउज़र के बीच अलग-अलग) का उपयोग करके अनुमान लगा रहा है, अनुमान लगाया जा सकता है कि पृष्ठ और संबंधित फाइलें कैश में कितनी हैं।

एचटीएमएल सिर में पेज के लिए एन्कोडिंग निर्दिष्ट करें:

<meta charset="utf-8"> 

तुम भी एन्कोडिंग विशेष रूप से सीएसएस फ़ाइल के लिए शीर्ष पर इस जोड़कर निर्दिष्ट कर सकते हैं, लेकिन यह केवल जब यह से अलग है की जरूरत किया जाना चाहिए पृष्ठ एन्कोडिंग:

@charset "utf-8"; 
+0

आपके उत्तर के लिए धन्यवाद। मैंने अभी देखा है कि मेरे पास यह एचटीएमएल 'मेटा http-equiv =" content-type "content =" text/html; charset = utf-8 "/>' पर है। क्या वे बराबर नहीं हैं? – renatoargh

+0

@renatoargh: वे होना चाहिए। यह गलत स्थान पर हो सकता है या हेडर सामग्री-प्रकार द्वारा ओवरराइड किया जा सकता है। यहां देखने के लायक कुछ विचार हैं: http://stackoverflow.com/questions/4696499/meta-charset-utf-8-vs-meta-http-equiv-content-type – Guffa

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

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