我正在解析一个 xml 文件,该文件存储我需要在画布上显示的图像/标题数据。但是有时文件中有一个实体,当将文本绘制到画布上时,它会将其解释为平面文本。我怎样才能©
在画布上显示为©?这甚至可能吗,或者有人知道一个好的解决方法吗?
问问题
3119 次
3 回答
5
您可以将 HTML 实体替换为等效的 Unicode 字符。
例如
var x = 'This is © 2010';
x = x.replace( /©/, '\u00A9' ); // x is now 'This is © 2010'
于 2010-06-10T16:31:51.757 回答
1
另请注意,所有 HTML 实体都将具有十六进制值
例如 ℃ Hex 值为 "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>
于 2018-04-26T13:42:08.627 回答
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 实体。
于 2019-11-22T09:02:00.300 回答