RFF*_*RFF 14 javascript html5 html5-canvas
我想使用canvas在字体中显示特殊字符fillText.代码基本上是:
canvas = document.getElementById("mycanvas");
context = canvas.getContext("2d");
hexstring = "\u00A9";
//hexstring = "\\u" +"00A9";
context.fillText(hexstring,100,100);
Run Code Online (Sandbox Code Playgroud)
如果我使用第一个hexstring,它可以工作,我得到版权符号.如果我使用第二个,它只显示\u00A9.由于我需要遍历数字,我需要使用第二个来显示字体的所有特殊字符.我正在使用utf-8.我究竟做错了什么?
bob*_*nce 28
使用String.fromCharCode把一个数字的字符.
var c= 169; // 0xA9
context.fillText(String.fromCharCode(c), 100, 100);
Run Code Online (Sandbox Code Playgroud)
如果您有一个十六进制编码的字符串,您可以先将其解析为十六进制数字:
var h= '00A9';
String.fromCharCode(parseInt(h, 16));
Run Code Online (Sandbox Code Playgroud)
要创建包含一系列字符的字符串,您可以创建一个数字数组,然后使用apply它们作为参数传递给它们fromCharCode.这比string= string+String.fromCharCode(c)分别对每个角色做得快.
function makeRange(n0, n1) {
var a= [];
for (; n0<n1; n++)
a.push(n0);
}
var someChars= makeRange(0xA9, 0xFF);
var stringOfChars= String.fromCharCode.apply(String, someChars);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9792 次 |
| 最近记录: |