上传,使用unicode& JavaScript的?

时间:2015-12-02 20:38:36

标签: javascript canvas unicode

我想在HTML画布中用指数显示数字。由于context.fillText(...)不支持HTML标记,我以为我会尝试使用unicode。结果并不完全符合我的预期,因为数字1-3的行为与其他上标数字的行为不同。我的代码如下:

   // Only supports integers and will round any non-integers
   function superscriptNumber(intNumber) {
        var text = '';          
        var number = Math.round(intNumber);
        var supers = '⁰¹²³⁴⁵⁶⁷⁸⁹'.split('');
        if (intNumber === 0) {
            text = supers[0] ;
        } else {
            while (Math.floor(number) > 0) {
                digit = number % 10;
                number = Math.floor(number / 10);
                text =  supers[digit] + text;
            }        
        }
        return text;
   }

然后,如果我做

   var text = '10 '+ superscriptNumber(1265);
   ctx.fillText(text, x, y);

然后我看到1& 2在同一级别和6& 5略微上标给他们。我怀疑他可能是字体,这对他们的处理方式略有不同(1,2,3由于某种原因不在同一个unicode范围内)?有没有办法改进我的代码,以确保字体的一致性?

0 个答案:

没有答案