返回 Bug 清单
BUG-0536project-13中已修复powershell
PowerShell 5.1 默认 GBK 读 UTF-8 无 BOM .ps1 — 中文字面量静默损坏
发现:2026-10-07验证:2026-10-11置信度:70%
症状
脚本跑通但输出的中文字段是乱码;或者更隐蔽 — 中文提示含换行导致脚本行为与预期不一致
根因
Windows PowerShell 5.1(不是 PowerShell 7+)读 .ps1 文件时默认用系统编码 GBK (936)。如果 .ps1 是 UTF-8 无 BOM,PS 5.1 会静默把中文字面量按 GBK 解码 → 脚本里的中文注释/提示语变成乱码甚至损坏相邻行。push-cockpit-data.ps1 被影响,推送 OmniSpace 驾驶舱数据时中文标签字段损坏
修复方案
两种方案:① .ps1 文件保存时加 UTF-8 BOM(首字节 0xEF 0xBB 0xBF)— PS 5.1 看到 BOM 就自动按 UTF-8 读;② 升级到 PowerShell 7+(默认 UTF-8)。教训:任何跨平台 PowerShell 脚本必须 BOM 或显式设置 [Console]::OutputEncoding
错误签名
PS 5.1 [System.Text.Encoding]::Default = GBK (936) 读 UTF-8 无 BOM — 中文乱码或被截断技术信息
来源项目
project-13
涉及文件
deploy/server/cockpit/push-cockpit-data.ps1
标签
project-13, mcp-reported, source-agent