--- title: CapacityReport CSV 上传导入编码兼容方案 type: experience permalink: main/projects/d5a7f581-c442-4554-87b9-ee723b8b0258/capacity-report-csv-上传导入编码兼容方案 stable_id: 2fd383a7-04dc-4fa9-9f0a-08531b417b44 scope: project memory_type: experience project_id: d5a7f581-c442-4554-87b9-ee723b8b0258 usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939 status: active revision: 1 request_id: 20260826-capacityreport-csv-encoding-experience-v1 created_at: '2026-08-26T02:32:42.966818+00:00' updated_at: '2026-08-26T02:32:42.966818+00:00' tags: - CapacityReport - CSV - UnicodeDecodeError - GBK - MetrixWarehouse --- 问题:数据管理上传由 Excel 保存为 ANSI 的 CSV 时,文件为 GBK/GB18030,而表头校验与 DatabaseManager.import_csv 固定使用 utf-8-sig,报 UnicodeDecodeError。解决:先以严格模式依次尝试 utf-8-sig、gb18030 扫描完整文件并选定编码;表头校验和实际导入复用同一编码。直连 MySQL 按原编码读取;MetrixWarehouse 遇到 GBK 系列时流式转为临时 UTF-8 BOM 文件再交给平台 API,并在成功或失败后删除临时文件。验证要覆盖 UTF-8、UTF-8 BOM、GBK 和真实用户 CSV。