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

Oracle Apex 18.2导出CSV时西里尔字符显示异常的解决方法

Oracle Apex 18.2 CSV下载西里尔字符乱码解决办法

方案1:修改交互式报表的CSV导出编码

  • 进入目标交互式报表的属性配置页
  • 定位到「下载」属性组,找到「CSV编码」选项,设置为UTF-8
  • 保存设置后重新测试CSV下载

方案2:自定义PL/SQL导出逻辑强制指定编码

如果默认设置不生效,可通过自定义导出流程确保编码正确:

  • 在报表的「操作」菜单中添加自定义下载选项,或新建页面按钮
  • 编写PL/SQL代码生成UTF-8编码的CSV,示例代码如下:
DECLARE
    l_clob CLOB;
    l_query VARCHAR2(4000) := 'SELECT col1, col2, col3 FROM your_table'; -- 替换为你的报表查询
    l_csv_lines VARCHAR2(32767);
BEGIN
    DBMS_LOB.CREATETEMPORARY(l_clob, TRUE);
    -- 写入CSV表头
    l_csv_lines := '列1,列2,列3' || CHR(10); -- 替换为实际列名
    DBMS_LOB.WRITEAPPEND(l_clob, LENGTH(l_csv_lines), l_csv_lines);
    
    -- 写入查询结果
    FOR rec IN (SELECT * FROM your_table) LOOP -- 替换为你的查询
        l_csv_lines := rec.col1 || ',' || rec.col2 || ',' || rec.col3 || CHR(10);
        DBMS_LOB.WRITEAPPEND(l_clob, LENGTH(l_csv_lines), l_csv_lines);
    END LOOP;
    
    -- 设置响应头指定UTF-8编码
    OWA_UTIL.MIME_HEADER('text/csv; charset=UTF-8', FALSE);
    HTP.P('Content-Disposition: attachment; filename="report.csv"');
    HTP.P('Content-Transfer-Encoding: binary');
    HTP.P('Content-Length: ' || DBMS_LOB.GETLENGTH(l_clob));
    OWA_UTIL.HTTP_HEADER_CLOSE;
    
    -- 输出文件内容
    WPG_DOCLOAD.DOWNLOAD_FILE(l_clob);
    DBMS_LOB.FREETEMPORARY(l_clob);
END;

方案3:调整Apex实例默认导出编码(全局生效)

  • 登录Apex工作区管理界面
  • 进入「实例设置」-「导出」配置项
  • 将默认CSV编码修改为UTF-8
  • 保存设置后,必要时重启Apex相关服务

额外注意:CSV文件的正确打开方式

部分情况下乱码并非导出问题,而是打开方式导致:

  • 使用Excel打开时,不要直接双击文件,需通过「数据」-「自文本/CSV」导入,导入过程中指定编码为UTF-8
  • 或使用Notepad++、VS Code等支持UTF-8的文本编辑器打开验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:57:37