| 1234567891011121314151617 |
- import { readFileSync } from 'node:fs';
- const p =
- 'd:/work/ylrz_saas/java/fs-saas-company/src/main/java/com/fs/company/controller/workflow/LobsterDeepDialogueController.java';
- const raw = readFileSync(p);
- const t = raw.toString('utf8');
- console.log('BOM', raw.length >= 3 && raw[0] === 0xef && raw[1] === 0xbb && raw[2] === 0xbf);
- console.log('FFFD', t.includes('\uFFFD'));
- console.log('u escapes', (t.match(/\\u[0-9a-fA-F]{4}/g) || []).length);
- t.split('\n').forEach((line, i) => {
- if (line.includes('\uFFFD') || (/[\u0080-\u00ff]{3,}/.test(line) && /[\u4e00-\u9fff]/.test(line) === false && /[\x80-\xff]/.test(line))) {
- // skip
- }
- if (line.includes('\uFFFD')) {
- console.log('FFFD', i + 1, line.trim().slice(0, 120));
- }
- });
|