原来是字体问题:
unicode 有效,但您必须确保您使用的字体包含您要使用的字符。与您的操作系统不同,PDFKit 不进行任何自动字体替换。
资料来源:/u/devongovett的Reddit 线程评论
我测试了 pdfkit 中包含的两种字体。“Helvetica-Bold”和“Times-Roman”都不适用于 unicode 符号。我在字体文档中注意到您可以添加自己的字体,因此我试了一下Cardo Font(托管在 Google Fonts 上),因为它支持许多 unicode 字符。
果然,它奏效了。这是我用于测试的脚本(确保您有可用的 Cardo 字体):
var PDFDocument = require('pdfkit');
var doc = new PDFDocument();
doc.registerFont('Cardo', 'Cardo/Cardo-Regular.ttf')
doc.font('Cardo')
.fontSize(20)
.text('Testing [\u20AC]', 10, 10);
doc.write('out.pdf');
如果您打算使用 Helvetica-Bold,请在别处下载该字体的副本(确保它支持您所追求的 unicode 字符)并像我使用 Cardo 字体一样注册它。