19 lines
1.0 KiB
Markdown
19 lines
1.0 KiB
Markdown
---
|
|
title: CSV 编码自动识别不能只靠 GBK 解码报错
|
|
type: experience
|
|
permalink: main/projects/8e229c96-a83b-4a02-ac40-10a0a9da444e/csv-编码自动识别不能只靠-gbk-解码报错
|
|
stable_id: ffa069f7-a3c2-4acc-a4ec-fef9b5f87c80
|
|
scope: project
|
|
project_id: 8e229c96-a83b-4a02-ac40-10a0a9da444e
|
|
memory_type: experience
|
|
status: active
|
|
revision: 1
|
|
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
|
created_at: '2026-09-23T15:00:15.334974+00:00'
|
|
updated_at: '2026-09-23T15:00:15.335031+00:00'
|
|
tags:
|
|
- encoding
|
|
- buildings
|
|
---
|
|
|
|
GetNRBuildingsData.detect_encoding(path, preferred):读 1MB 样本,按最后换行截断;有 BOM 或含非 ASCII 且能严格 UTF-8 解码 → utf-8-sig,否则 gbk;纯 ASCII 用首选;再验表头 WKT/building_id,不行就试其余候选,都不行才报错。原因:GBK 对 UTF-8 字节很宽容,不能靠解码报错判断。validation 把判定结果写回 params[INPUT_ENCODING] 供 worker 使用。当前 source/NRBuildPolygon.csv 实际为纯 ASCII(无 BOM),gbk/utf-8 等价。 |