
QiuSWandClaude Opus 5
e7c3c6849c
fix: 中文 profile 路径导致 Chrome 归属校验永远失败 (#9)
负责人点「打开淘宝登录」报错:
「Chrome进程不属于配置的专属用户数据目录,已将其关闭」
根因是编码不一致。processCommandLine 用 PowerShell 读取进程命令行,
PowerShell 的标准输出使用系统 ANSI 代码页(简体中文 Windows 是 GBK),
而 Go 字符串是 UTF-8。专属 profile 路径含中文
(电商视频自动下载工具\淘宝浏览器\默认账号),两边字节不同,
strings.Index 永远匹配不上,于是 Chrome 刚启动就被判为不属于本 profile
并被杀掉。
单元测试没能发现,因为测试里比较的两个字符串都是 UTF-8。
改为让 PowerShell 先把命令行转成 UTF-8 的 Base64,Go 侧再解码。
不用 [Console]::OutputEncoding=UTF8 是因为那依赖控制台状态;
Base64 只含 ASCII,任何区域设置下都可靠。
实测三种方式:
原样读取 含中文路径 false ← 修复前
设 UTF8 编码 含中文路径 true
Base64 传输 含中文路径 true ← 采用
已用真实运行中的 Chrome 进程验证:归属判断返回 true。
补一条防回归测试,覆盖含中文的 profile 以及编码不一致的情形。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LbdtsD3ohhSMy3KPoCgARq
2026-09-03 09:22:53 +08:00
..
2026-09-02 17:20:44 +08:00
2026-09-02 21:02:58 +08:00
2026-09-02 15:59:54 +08:00
2026-09-02 21:13:12 +08:00
2026-09-03 09:22:53 +08:00