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

DataTables导出Excel/PDF/CSV时指定UTF-8编码的问题咨询

DataTables导出UTF-8编码文件配置方案

现有配置问题

你当前的配置未生效是因为:

  • 仅给pdfHtml5加了编码参数,缺失excel、CSV格式的编码配置
  • pdfHtml5不支持直接在顶层写charset、bom参数,参数写法不符合官方要求
  • PDF导出对非拉丁字符的支持依赖字体配置,仅加编码参数无法解决乱码问题

完整配置代码

首先确保你已经引入了导出依赖的库:jszip(用于Excel导出)、pdfmake(用于PDF导出)。

$(document).ready(function() {
    var table = $('#allgps').DataTable({
        "language": {
            "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Thai.json"
        },
        responsive: true,
        "lengthMenu": [
            [10, 25, 50, -1],
            [10, 25, 50, "All"]
        ],
        dom: 'Bfrtip',
        buttons: [
            // PDF导出配置
            {
                extend: 'pdfHtml5',
                filename: 'EXTest',
                title: 'EXTest',
                customize: function(doc) {
                    // 需提前在pdfmake中注册支持泰文的UTF-8字体,替换下方字体名即可
                    doc.defaultStyle.font = '自定义支持泰文字体名';
                    doc.defaultStyle.encoding = 'UTF-8';
                }
            },
            // Excel导出配置
            {
                extend: 'excelHtml5',
                filename: 'EXTest',
                title: 'EXTest',
                charset: 'UTF-8',
                bom: true
            },
            // CSV导出配置
            {
                extend: 'csv',
                filename: 'EXTest',
                charset: 'UTF-8',
                bom: true,
                fieldSeparator: ',',
                lineSeparator: '\r\n'
            },
            'pageLength'
        ],
    });
    new $.fn.dataTable.FixedHeader(table);
});

注意事项

  • 页面必须提前设置<meta charset="UTF-8">,保证表格原始内容编码正确
  • PDF导出如果出现非拉丁字符空白,就是字体不兼容导致,必须给pdfmake导入支持对应语言的UTF-8字体包才能正常显示
  • bom: true配置必须加,否则Windows系统下用Office打开导出的文件会出现乱码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:48:02