首先 - 对问题的简短描述。我写了一个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