如何获取HTML5画布文本来显示html实体?

时间:2010-04-16 14:52:08

标签: html5 canvas html-entities

我正在解析一个xml文件,该文件存储我需要在画布上显示的图像/标题数据。然而,偶尔文件中有一个实体,当将文本绘制到画布时,它会将其解释为平面文本。如何让©在画布上显示为©?这甚至是可能的,还是有人知道一个好的工作?

3 个答案:

答案 0 :(得分:5)

您可以使用等效的unicode字符替换HTML实体。

E.g。

var x = 'This is © 2010';
x = x.replace( /©/, '\u00A9' ); // x is now 'This is © 2010'

答案 1 :(得分:1)

另请注意,所有HTML实体都将具有十六进制值

示例为℃十六进制值为“2103”我们可以将其转换为“\ u2103”并将其添加到画布代码

    <canvas id='my-canvas'></canvas>
    <script>
    var c = document.getElementById("my-canvas");  
    var ctx = c.getContext("2d");
    ctx.strokeText("170 \u2103", 25, 50);
    ctx.stroke();
    </script>

答案 2 :(得分:0)

晚了,但对于其他正在寻找解决方案的人:

var inputText = 'This is &copy; 2010';

var textContainer = document.createElement('span'); // Use a span to render the html entities
textContainer.innerHTML = inputText; // Set as innerhtml to make sure entities are converted

var outputText = textContainer.textContent; // x is now 'This is © 2010'

输入文本的呈现方式与html元素中的普通文本一样。这会自动转换所有html实体。