كتب زميلي السابق أداة ، ولكن كان هناك خطأ ، أي بعد استبدال الملف ، أصبح تنسيق الملف الأصلي UTF8 BOM. قد لا يتم قراءة هذا النوع من XML مع BOM على Mac ، لذلك أحتاج إلى كتابة أداة للتعامل معها.
في الواقع ، الفكرة بسيطة نسبيا. أولاً ، قم بالتكرار من خلال الدليل ، ثم اقرأ الدليل ، قم بإزالة البايتات الثلاثة الأولى من الملف ، وحفظه كملف بتنسيق UTF-8. فقط أدخل الرمز :)
نسخة الكود كما يلي:
var fs = require ('fs') ؛
var path = "Target Path ..." ؛
وظيفة readDirectory (dirpath) {
if (fs.existssync (dirpath)) {
ملفات var = fs.readdirsync (dirpath) ؛
files.foreach (function (file) {
var filepath = dirpath + "/" + file ؛
var stats = fs.statsync (filepath) ؛
if (stats.isdirectory ()) {
console.log ('/n read directory:/n' ، filepath ، "/n") ؛
ReadDirectory (FilePath) ؛
} آخر إذا (stats.ispile ()) {
var buff = fs.readfilesync (filePath) ؛
if (buff [0] .ToString (16) .ToLowerCase () == "ef" && buff [1] .ToString (16) .ToLowerCase () == "BB" && Buff [2] .ToString (16) .ToLowerCase () == "BF") {
// EF BB BF 239 187 191
console.log ('/discover bom file:' ، filepath ، "/n") ؛
Buff = Buff.slice (3) ؛
fs.writefile (filepath ، buff.toString () ، "utf8") ؛
}
}
}) ؛
} آخر {
console.log ('لم يتم العثور على المسار:' ، dirpath) ؛
}
}
ReadDirectory (path) ؛