scan_encoding_easycall.mjs 952 B

12345678910111213141516171819202122232425262728
  1. import { readFileSync, readdirSync, statSync } from 'fs';
  2. import { join } from 'path';
  3. const targets = [
  4. 'src/main/java/com/fs/company/service/easycall/WxAddWxFrequencySupport.java',
  5. 'src/main/java/com/fs/company/service/easycall/WxAddWxFrequencyRedisHelper.java',
  6. 'src/main/java/com/fs/company/service/impl/call/node/AiAddWxTaskNewNode.java',
  7. ];
  8. const issues = [];
  9. for (const rel of targets) {
  10. const bytes = readFileSync(rel);
  11. if (bytes.length >= 3 && bytes[0] === 0xef && bytes[1] === 0xbb && bytes[2] === 0xbf) {
  12. issues.push(`${rel}: UTF-8 BOM`);
  13. }
  14. const text = bytes.toString('utf8');
  15. if (text.includes('\uFFFD')) issues.push(`${rel}: U+FFFD`);
  16. if (/\u00C3[\u0080-\u00BF]{1,2}/.test(text) && !/[\u4e00-\u9fff]/.test(text)) {
  17. issues.push(`${rel}: possible GBK misread`);
  18. }
  19. }
  20. if (issues.length === 0) {
  21. console.log('scan ok:', targets.length, 'files');
  22. } else {
  23. console.log(issues.join('\n'));
  24. process.exit(1);
  25. }