`& mdash;` या `& # 8212;` HTML आउटपुट में कोई अंतर है?


79

— या —

क्या इनमें कोई अंतर है? क्या एक दूसरे की तुलना में बेहतर समर्थित है?


7
बस पूर्णता के लिए: वास्तविक लंबा डैश ("mdash") चरित्र है: - और चरित्र "m" जितना चौड़ा होना चाहिए
साइमन बी।

6
हां, एक राजधानी एम
रे तयेक

जवाबों:


85

SGML पार्सर्स (या एक्सएचटीएमएल के मामले में XML पार्सर) —DTD (जो कि ब्राउज़र के लिए कोई फर्क नहीं पड़ता है क्योंकि वे केवल सूप सूप को टैग करते हैं) को संसाधित किए बिना संभाल सकते हैं , जबकि —मनुष्यों के लिए स्रोत कोड में पढ़ना और लिखना आसान है।

व्यक्तिगत रूप से, मैं एक शाब्दिक एम-डैश से चिपक जाता हूं और यह सुनिश्चित करता हूं कि मेरे चरित्र एन्कोडिंग सेटिंग्स अनुरूप थे।


13

वे बिल्कुल उसी तरह के किरदार हैं। देखें: http://en.wikipedia.org/wiki/Dash

ब्राउज़र बग को वे सभी मामलों में समान प्रदर्शित करेंगे, इसलिए केवल अंतर कोड पठनीयता से संबंधित होगा, जो इंगित करेगा —

या, यदि आप अपने HTML डॉक्यूमेंट में UTF-8 का उपयोग चारसेट के रूप में कर रहे हैं, तो आप सीधे चरित्र दर्ज कर सकते हैं। यह भी बिल्कुल वैसा ही प्रदर्शित होगा।


5
ध्यान दें कि यह केवल HTML के लिए, XML में सच है, &8212;हमेशा काम करता है जबकि —इकाई घोषित होने पर निर्भर करता है।
फ्लिम

10

—:: —::\u2014

HTML के आउटपुट के लिए जावास्क्रिप्ट टेक्स्ट स्ट्रिंग में m-डैश का प्रतिनिधित्व करते समय, ध्यान दें कि इसका यूनिकोड मान द्वारा प्रतिनिधित्व किया जाएगा। ऐसे मामले हैं जब एम्परसैंड वर्ण ('और') को हल नहीं किया जाएगा - विशेष रूप से जेएसएक्स के भीतर कुछ संदर्भ। इस मामले में, न —है और न ही —काम करेंगे। इसके बजाय आपको यूनिकोड एस्केप सीक्वेंस का उपयोग करने की आवश्यकता है \u2014:।

उदाहरण के लिए, render()जावास्क्रिप्ट चर से पाठ के उत्पादन के लिए एक विधि को लागू करते समय :

render() {
   let text='JSX transcoders will preserve the & character—to ' 
            + 'protect from possible script hacking and cross-site hacks.'
   return (
     <div>{text}</div>
   )
}

यह आउटपुट होगा:

<div>JSX transcoders will preserve the & character&mdash;to protect from possible script hacking and cross-site hacks.</div>

इसके बजाय &- उपसर्ग प्रतिनिधित्व, आपको \ u2014 का उपयोग करना चाहिए:

let text='JSX transcoders will preserve the & character\u2014to …'

1
रिएक्ट के साथ बढ़िया काम करता है।
ग्रीन

2

W3 वेब साइट से टाइपोग्राफी के लिए उपयोग किए जाने वाले सामान्य HTML निकाय

पोर्टेबिलिटी के लिए, यूनिकोड इकाई संदर्भों को यूटीएफ -8 या यूटीएफ -16 चरित्र सेटों में लिखे जाने वाले दस्तावेजों में उपयोग के लिए आरक्षित किया जाना चाहिए। अन्य सभी मामलों में, अल्फ़ान्यूमेरिक संदर्भ का उपयोग किया जाना चाहिए।

अनुवाद: यदि आप व्यापक समर्थन की तलाश कर रहे हैं, तो साथ जाएं &mdash;


1

यह हो सकता है कि अंकों के कोड का उपयोग करना अधिक सार्वभौमिक है, क्योंकि यह HTML इकाई तालिका में एक चरित्र का प्रत्यक्ष संदर्भ है, लेकिन मुझे लगता है कि वे हर जगह काम करते हैं। पहला अंकन केवल बड़े अक्षरों के लिए याद रखने के लिए बड़े पैमाने पर आसान है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.