import { readFileSync, readdirSync, statSync } from 'fs'; import { join } from 'path'; const targets = [ 'src/main/java/com/fs/company/service/easycall/WxAddWxFrequencySupport.java', 'src/main/java/com/fs/company/service/easycall/WxAddWxFrequencyRedisHelper.java', 'src/main/java/com/fs/company/service/impl/call/node/AiAddWxTaskNewNode.java', ]; const issues = []; for (const rel of targets) { const bytes = readFileSync(rel); if (bytes.length >= 3 && bytes[0] === 0xef && bytes[1] === 0xbb && bytes[2] === 0xbf) { issues.push(`${rel}: UTF-8 BOM`); } const text = bytes.toString('utf8'); if (text.includes('\uFFFD')) issues.push(`${rel}: U+FFFD`); if (/\u00C3[\u0080-\u00BF]{1,2}/.test(text) && !/[\u4e00-\u9fff]/.test(text)) { issues.push(`${rel}: possible GBK misread`); } } if (issues.length === 0) { console.log('scan ok:', targets.length, 'files'); } else { console.log(issues.join('\n')); process.exit(1); }