2017-09-21 12 views
8

एचटीएमएल कैरेक्टर एंटिटी 𝕒:एचटीएमएल कैरेक्टर एंटिटीज और डेल्फी के बीच संख्यात्मक समकक्षता?

<!DOCTYPE html> 
<html> 
<style> 
body { 
    font-size: 20px; 
} 
</style> 
<body> 

<p>I will display &#120146;</p> 

</body> 
</html> 

इन बढ़ाया चरित्र प्रतीकों में से कुछ समान संख्या मान से बनाया जा सकता:

enter image description here

इस एचटीएमएल कोड के साथ संख्या 120,146 से बनाया जा सकता एचटीएमएल और डेल्फी दोनों में 10.1.2। उदाहरण के लिए:

दोनों &#174; और Chr(174) "पंजीकृत ट्रेडमार्क" प्रतीक चरित्र ®

दोनों &#163; और Chr(163)

£ "पौंड" प्रतीक चरित्र बनाने आदि बनाने

दुर्भाग्य से, यह है उपरोक्त संख्या के साथ मामला नहीं है जहां डेल्फी में Chr(120146) एक "मजाकिया चीनी प्रतीक" बनाता है।

तो मैं कैसे संख्या 120,146 डेल्फी में से ऊपर &aopf; चरित्र प्रतीक बना सकते हैं? और यह संख्यात्मक सीमा है जहां एचटीएमएल और डेल्फी के बीच उपरोक्त संख्यात्मक समकक्ष काम करता है या काम नहीं करता है?

उत्तर

11

यह 'MATHEMATICAL DOUBLE-STRUCK SMALL A' (U+1D552) है। यह मूल बहुभाषी विमान के बाहर है, और इसलिए यूएफटी -16 में एक सरोगेट जोड़ी का उपयोग करके एन्कोड किया गया है। जिसका अर्थ है कि दो यूटीएफ -16 चरित्र तत्वों की आवश्यकता है।

अपने प्रयास को देखें: Chr(120146)। अब, 120146 > high(Word) (= 65535) जो आपको बताता है कि आपका कोड सफल नहीं हो सकता है। याद रखें कि प्रत्येक यूटीएफ -16 चरित्र तत्व आकार में 16 बिट्स है। यह अच्छा होगा अगर संकलक ने इसके बारे में चेतावनी दी। क्या यह?

उपरोक्त लिंक आपको बताता है कि इसे कैसे एन्कोड करना है। यह इस किराए की जोड़ी द्वारा दिया जाता है:

0xD835 0xDD52

डेल्फी में सबसे आसानी से रूप में लिखा जाएगा:

#$D835#$DD52 

आप के रूप में UTF-32 कोड के साथ शुरू कर रहे हैं

TCharacter.ConvertFromUtf32($1D552) 
: एक अंकीय मान तो आप इसके System.Character इकाई से TCharacter.ConvertFromUtf32 का उपयोग कर एक डेल्फी स्ट्रिंग के लिए कनवर्ट कर सकते हैं

स्पष्ट रूप से इस फ़ंक्शन का तर्क एक चर हो सकता है।

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