无法解码下载的字体 - Chrome和base64

时间:2017-10-25 22:32:46

标签: javascript css google-chrome fonts base64

我正在使用此方法将字体从opentype.js转换为base64:

const buffer = glyphs.toArrayBuffer() // from opentype
let binary = []
const bytes = new Uint8Array(buffer)
const len = bytes.byteLength
for (let i = 0; i < len; i++) {
  binary[i] = String.fromCharCode(bytes[ i ])
}
return window.btoa(binary.join(''))

我接受这个base64字符串并将其嵌入为css字符串:

src: url('data:text/plain;charset=utf-8;base64,BASE64DARA')

95%的字体在Chrome中运行,100%在Safari中运行。某些字体在Chrome中失败

Failed to decode downloaded font

如果我使用更原生的方法(如CLI)对字体进行编码,则可以正常工作。我已经读过上面的浏览器方法需要多字节,但它在Safari中工作正常,并且还解码回ttf。

我玩过编码器的几种变体=,mime类型等无济于事。

这是违规基地64的gist

如何在Chrome中使用此功能?

0 个答案:

没有答案