首先 - 對問題的簡短描述。我寫了一個JavaScript函數將一些文本標籤放在SVG畫布中。那就是:帶有Unicode字符的SVG文本元素
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符號出現像我寫它 - 與代碼:(
經過一些研究在這裏其他類似的問題,我發現,如果我轉換UTF-8代碼ESC序列,如\ U00B0 - 這必須解決這個問題,但是...... - 我無法弄清楚它是如何做到這一點, - 如何做,如果特殊字符是在字符串中 - 就像第二個例子
我重新標記爲unicode而不是UTF-8,因爲它與UTF-8無關。沒有像UTF-8符號那樣的東西。 Unicode定義了整數和符號之間的映射。 UTF-8定義了整數和字節序列之間的映射。有關更詳盡的解釋,請參閱http://www.differencebetween.net/technology/difference-between-unicode-and-utf-8/。 – 2011-04-29 14:25:40
Thsnk的麥克塞繆爾:)你是絕對正確的。 – xentia 2011-04-29 19:52:01