पहला - किसी समस्या का संक्षिप्त विवरण। मैं कुछ पाठ लेबल एसवीजी कैनवास में रखने के लिए एक जावास्क्रिप्ट फ़ंक्शन लिखता हूं। संदेश यह है:यूनिकोड वर्णों के साथ एसवीजी टेक्स्ट तत्व
function set_label(x,y,title)
{
var newTitle = document.createElementNS(svgNS,"text");
newTitle.setAttributeNS(null,"x",x);
newTitle.setAttributeNS(null,"y",y);
newTitle.setAttributeNS(null,"font-size","17px");
newTitle.setAttributeNS(null,"font-family","WinGreek");
var textNode = document.createTextNode(title);
newTitle.appendChild(textNode);
document.getElementById("viewport").appendChild(newTitle);
}
मैं अपने प्रोजेक्ट बिंदुओं के कारण यूनानी फ़ॉन्ट का उपयोग करना होगा। तो, मैं फ़ंक्शन को कॉल करें:
set_label (10,50,'Qitos')
इस Ktitos लेबल प्रदर्शित करते हैं - कोई बात नहीं।
लेकिन - जब मैं इस तरह कॉल करने के लिए प्रयास करें:
set_label (10,50,'QamÚraj')
या भी बदतर:
set_label (10,50,'Θαρσανδαλα')
इस प्रदर्शित करना चाहिए Θ α ρ σ α ν δ α λ α शीर्षक सभी विशेष पात्रों से गठित - एक समस्या accrue - utf-8 प्रतीक प्रकट होता है जैसे मैं इसे लिखता हूं - कोड के साथ :(
अन्य समान प्रश्नों में यहां कुछ शोध के बाद, मुझे लगता है कि अगर मैं यूटीएफ -8 कोड को परिवर्तित करता हूं ESC अनुक्रम, \ U00B0 की तरह - इस समस्या का समाधान करना चाहिए, लेकिन ... - मैं इसे समझ कैसे करना है नहीं कर सकते यह और - कैसे करना है, तो विशेष वर्ण स्ट्रिंग के बीच में है कि - दूसरे उदाहरण की तरह
मैंने इसे यूटीएफ -8 के बजाय यूनिकोड के रूप में दोबारा जोड़ा क्योंकि इसका यूटीएफ -8 के साथ कुछ लेना देना नहीं है। यूटीएफ -8 प्रतीक जैसी कोई चीज नहीं है। यूनिकोड पूर्णांक और प्रतीकों के बीच मैपिंग को परिभाषित करता है। यूटीएफ -8 पूर्णांक और बाइट अनुक्रमों के बीच मैपिंग को परिभाषित करता है। अधिक विस्तृत स्पष्टीकरण के लिए http://www.differencebetween.net/technology/difference-between-unicode-and-utf-8/ देखें। –
Thsnk की माइक सैमुअल :) आप बिल्कुल सही हैं। – xentia