You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pdfmake生成PDF时,toLocaleString("fr-FR")输出未知字符求助

解决pdfmake中toLocaleString("fr-FR")生成未知字符的问题

使用pdfmake生成PDF时,调用Number.toLocaleString("fr-FR")处理数字后,PDF中出现未知方块字符。测试代码如下:

var y = Number(120000);
var x = y.toLocaleString("fr-FR").toString();
var dd = {
    content: [
        x.toString()
    ]
}

问题原因

toLocaleString("fr-FR")返回的法语格式数字中,千位分隔符是Unicode不间断空格(U+00A0),而pdfmake默认的基础字体不包含该字符的渲染字形,导致显示为未知方块。

解决方案

方案1:替换不间断空格为普通空格(临时快速解决)

修改代码,将结果中的不间断空格替换成普通空格:

var y = Number(120000);
// 替换所有不间断空格为普通空格
var x = y.toLocaleString("fr-FR").replace(/\u00A0/g, ' ');
var dd = {
    content: [x]
};

方案2:使用支持特殊字符的完整字体(根源解决)

配置pdfmake使用包含该字符的字体(比如完整的Roboto字体包),确保字体文件可访问:

// 定义字体配置
pdfMake.fonts = {
    Roboto: {
        normal: 'Roboto-Regular.ttf',
        bold: 'Roboto-Bold.ttf',
        italics: 'Roboto-Italic.ttf',
        bolditalics: 'Roboto-BoldItalic.ttf'
    }
};

var y = Number(120000);
var x = y.toLocaleString("fr-FR");
var dd = {
    content: [x],
    defaultStyle: {
        font: 'Roboto'
    }
};

内容的提问来源于stack exchange,提问作者j10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:42:11