jQuery Datatable导出CSV日文乱码但Excel导出正常的修复方案问询
CSV导出日文字符乱码修复方案
乱码原因
CSV格式默认导出的文件不带UTF-8 BOM头,Windows系统下的Excel软件打开CSV文件时会默认使用系统本地编码解析文件,与文件实际的UTF-8编码不匹配,就会出现日文等非ASCII字符乱码的问题。Excel格式导出内置了适配Office的编码规则,所以没有乱码问题。
修复方法
修改CSV导出按钮的配置,开启BOM头、明确指定UTF-8编码即可,修改后的完整配置如下:
buttons: [ { extend: 'excel', text: 'Export to Excel', className: 'btn btn-default', exportOptions: { columns: ':not(.notexport)' } }, { extend: 'csv', text: 'Export to CSV', className: 'btn btn-default', exportOptions: { columns: ':not(.notexport)' }, // 新增以下配置解决乱码问题 bom: true, charset: 'utf-8' } ],
兼容低版本组件的备用方案
如果你使用的DataTables版本较低不支持bom参数,可以通过自定义导出内容回调手动添加UTF-8 BOM标识,配置如下:
{ extend: 'csv', text: 'Export to CSV', className: 'btn btn-default', exportOptions: { columns: ':not(.notexport)' }, customize: function (csvContent) { // 在CSV内容开头添加UTF-8 BOM标识 return '\ufeff' + csvContent; } }
内容的提问来源于stack exchange,提问作者Vince
相关产品推荐
相关产品推荐

