使用context.filltext

时间:2016-01-17 19:45:05

标签: canvas unicode html5-canvas

text = Array(this.battlefield.pointLimit() - this.battlefield.p2.score).join("∞");
context.fillText(text, client.canvas.width / 2, h-5);

显示 enter image description here 如何使用context.fillText绘制此符号?

编辑:我正在使用

在评论中尝试该功能
text = Array(this.battlefield.pointLimit() - `this.battlefield.p2.score).join(toUTF16(0x221E));`

它的打印\ u221E

1 个答案:

答案 0 :(得分:1)

text = Array(this.battlefield.pointLimit() - this.battlefield.p2.score).join("∞");

那应该没事。

但是:当浏览器从网页加载.js文件时,它会使用一种编码将脚本的字节解码为Unicode源代码,默认情况下,该编码与用于解码字节的字节相同。网页。

看起来你已经以UTF-8编码保存了.js文件(这是一个不错的选择),导致字符U + 221E Infinity 被存储为字节序列0xE2 ,0x88,0x9E。但是浏览器使用Windows代码页1252编码加载了文件,其中该字节序列解码为字符∞

所以你可以做其中一个或两个:

  1. 确保浏览器将包含该脚本的HTML页面解释为UTF-8,例如将<meta charset="utf-8"/>标记添加到<head>
  2. 以ASCII安全的形式编写脚本,因此它在编码时的工作方式相同:.join('\u221E')