diff --git a/AGENTS.md b/AGENTS.md index 338ea80..29e1fc8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,16 +32,10 @@ ### 3. 编码规范 -- **PowerShell中文编码修复(每次会话必须执行)**:PowerShell 5.1默认OutputEncoding为GB2312,中文路径/文件名输出会乱码。在执行任何涉及中文路径的PowerShell命令前,必须先设置编码: - ```powershell - [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 - [Console]::InputEncoding = [System.Text.Encoding]::UTF8 - $OutputEncoding = [System.Text.Encoding]::UTF8 - ``` +- **PowerShell编码**:已通过Profile永久配置UTF-8(`C:\Users\jiang\Documents\PowerShell\Microsoft.PowerShell_profile.ps1`),无需每次手动设置 - **文件写入编码规范**: - - 禁止使用PowerShell `Out-File -Encoding utf8` 写入文件(会产生UTF-8 with BOM + CRLF) - - 使用Node.js `fs.writeFileSync(path, content, 'utf8')` 写入文件(无BOM、LF换行) - - 或使用Write/Edit工具直接写入(无BOM、LF换行) + - 禁止使用PowerShell `Out-File -Encoding utf8` 写入文件(PS5.1会产生UTF-8 with BOM + CRLF) + - 使用Write/Edit工具直接写入(无BOM、LF换行) - 如必须用PowerShell写入,需用 `[System.IO.File]::WriteAllText($path, $content, [System.Text.UTF8Encoding]::new($false))` 避免BOM - 已有BOM文件修复:`node -e "const fs=require('fs');let b=fs.readFileSync('文件路径');if(b[0]===0xEF&&b[1]===0xBB&&b[2]===0xBF)b=b.slice(3);let t=b.toString('utf8').replace(/\r\n/g,'\n');fs.writeFileSync('文件路径',t,'utf8')"`