【发布时间】:2011-04-29 10:40:04
【问题描述】:
首先 - 对问题的简短描述。我编写了一个 JavaScript 函数来将一些文本标签放在 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,'Θαρσανδαλα')
这必须显示 Θαρσανδαλα 标题全部由特殊字符组成 - 出现问题 - utf-8 符号看起来就像我写的一样 - 带有代码:(
经过对其他类似问题的一些研究,我发现如果我将 UTF-8 代码转换为 ESC 序列,例如 \U00B0 - 这必须解决这个问题,但是...... - 我不知道该怎么做 - 如果特殊字符在字符串中间怎么办 - 比如第二个例子
【问题讨论】:
-
我将其重新标记为 unicode 而不是 UTF-8,因为它与 UTF-8 无关。没有 UTF-8 符号这样的东西。 Unicode 定义了整数和符号之间的映射。 UTF-8 定义了整数和字节序列之间的映射。请参阅differencebetween.net/technology/… 以获得更详尽的说明。
-
Thsnk 的 Mike Samuel :) 你完全正确。
标签: javascript unicode svg