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