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

ExtJS网格日文字符下载异常:Excel正常CSV无法显示求助

ExtJS Grid导出CSV日文字符乱码解决方案

核心原因

CSV导出时默认生成UTF-8无BOM格式的纯文本,而Excel对UTF-8编码的CSV文件,必须带有BOM(字节顺序标记)才能正确识别日文等非ASCII字符;Excel格式(xlsx)本身内置编码支持,因此不会出现乱码。

解决方案:给CSV内容添加UTF-8 BOM

通过重写ExtJS导出相关类的方法,在生成的CSV内容开头插入UTF-8 BOM标记(\ufeff),即可让Excel正确解析日文字符。

方法1:重写Grid导出插件的内容生成逻辑

Ext.define('MyApp.override.grid.plugin.Exporter', {
    override: 'Ext.grid.plugin.Exporter',
    
    getDocumentData: function(config) {
        var data = this.callParent(arguments);
        // 仅针对CSV类型添加BOM
        if (config?.type === 'csv') {
            data = '\ufeff' + data;
        }
        return data;
    }
});

方法2:直接重写CSV导出类的生成方法

如果项目中直接使用Ext.exporter.Csv类,可重写其生成逻辑:

Ext.define('MyApp.override.exporter.Csv', {
    override: 'Ext.exporter.Csv',
    
    generate: function() {
        var content = this.callParent(arguments);
        // 在CSV内容开头插入BOM
        return '\ufeff' + content;
    }
});

验证方式

导出CSV后,用文本编辑器(如Notepad++)打开,确认编码为「UTF-8带BOM」,再用Excel打开即可正常显示日文字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:36:03