规范化/Impulse 雷达 reader 的 std::ifstream 用 toLocal8Bit 产出的窄字节(GBK)路径 打开文件。GUI app 链接 QWebEngine(Chromium)/VTK,启动时 setlocale(LC_ALL,"") 把 LC_CTYPE 提升为系统 UTF-8 locale,此后 narrow ifstream 把 GBK 路径字节当 UTF-8 解析 → 打不开 → "打开 .head 失败"。纯 "C" locale 的无头/单测环境用 CP_ACP=GBK 解窄路径, 不触发,故此前未暴露。 新增 io/gpr/LocalPath: Windows 用 MultiByteToWideChar(CP_ACP) 把本地 8 位字节解成 宽字符 std::filesystem::path,使 ifstream/ofstream/file_size 走宽字符打开,与 locale 无关;非 Windows 直接 UTF-8。改到所有外部导入路径 open 点(.head/.data/.iprb/.iprh/ .ord/.gps)。 回归测试 OpensCjkDirectoryPathUnderUtf8Locale: 显式置 .UTF-8 locale 复现 app 运行期 条件,走真实 buildLineVolumeFromNormalized 断言中文目录建体成功(退回 narrow 则抛错, 红/绿已验)。 |
||
|---|---|---|
| .. | ||
| gpr | ||