用途:解决 Windows PowerShell 读取含非 ASCII 字符(韩文、中文、日文、emoji 等)脚本时出现乱码的问题。根因是文件编码不匹配:带 BOM(EF BB BF)的 UTF-8 能被正确读取,不带 BOM 时 PowerShell 会使用系统默认编码(如韩文 Windows 上的 CP949),导致文字显示为 ??? 或乱码。
主要能力:提供两个 Node.js 脚本。check_powershell_encoding.js 仅诊断不修改文件,输出 UTF-8 with BOM、UTF-8 without BOM、UTF-16 或 Unknown 等状态;fix_powershell_encoding.js 为缺少 BOM 的文件添加 UTF-8 BOM,已带 BOM 的文件会跳过,目录会递归处理 .ps1 文件。
使用方式: 检查:node scripts/check_powershell_encoding.js <file_or_directory>,或 npm run check <file_or_directory> 修复:node scripts/fix_powershell_encoding.js <file_or_directory>,或 npm run fix <file_or_directory> 支持对单个文件或整个目录批量处理。退出码:检查脚本 0 表示全部带 BOM,1 表示有文件需修复或出错;修复脚本 0 表示全部成功,1 表示处理出错。
适用场景:新建含非 ASCII 字符的 .ps1 文件后立即修复;诊断脚本乱码;批量检查/修复目录内脚本;在提交前或 CI/CD 中做编码校验。也可在编辑器中将 .ps1 保存为 UTF-8 with BOM 以预防问题,例如 VS Code 或 Cursor 的 settings.json 中设置 "[powershell]": {"files.encoding": "utf8bom"}。
限制:仅针对 Windows PowerShell 的文件读取行为;不推荐用逐脚本添加编码命令、-Encoding UTF8 参数或避免非 ASCII 字符等替代方案。资料未提供安装步骤、依赖要求、支持平台范围及许可证等信息。