Node.js文件编码格式转换步骤详解
这次给大家带来Node.js文件编码格式转换步骤详解,Node.js文件编码格式转换的注意事项有哪些,下面就是实战案例,一起来看一下。
项目很多 lua 文件不是 utf-8格式,使用 EditPlus 查看的时候,显示为ASCII。还有的是带BOM的,带BOM倒好处理,之前写过,有一定规律。
ASCII编码就比较蛋疼,通过搜索网上资源,反复测试对比,最终形成下面比较靠谱的方法(有一些 EditPlus显示编码为utf-8但node.js库返回的却是其它编码>_<)
判断修改是否无误,只需要在修改完之后,通过SVN提交,浏览提交列表,双击任意一项待提交文件,如果显示下图所示的对话框,则说明修改成功,其它都会看到中文反而变成乱码了
var fs = require('fs'); var chardet = require('chardet'); var jschardet = require("jschardet"); var encoding = require("encoding"); var path = "lua目录"; function readDirectory(dirPath) { if (fs.existsSync(dirPath)) { var files = fs.readdirSync(dirPath); files.forEach(function (file) { var filePath = dirPath + "/" + file; var stats = fs.statSync(filePath); if (stats.isDirectory()) { // console.log('/n读取目录:\n', filePath, "\n"); readDirectory(filePath); } else if (stats.isFile() && /\.lua$/.test(filePath)) { var buff = fs.readFileSync(filePath); if (buff.length && 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('\n发现BOM文件:', filePath, "\n"); buff = buff.slice(3); fs.writeFile(filePath, buff.toString(), "utf8"); } // { encoding: 'UTF-8', confidence: 0.99 } // var charset = chardet.detectFileSync(filePath); var info = jschardet.detect(buff); if (info.encoding == "GB2312" || info.encoding == "ascii") { var resultBuffer = encoding.convert(buff, "UTF-8", info.encoding); fs.writeFile(filePath, resultBuffer, "utf8"); } else if (info.encoding != "UTF-8" && chardet.detectFileSync(filePath) != "UTF-8") { if (buff.toString().indexOf("\r\n") > -1) { var resultBuffer = encoding.convert(buff, "UTF-8", "GBK"); fs.writeFile(filePath, resultBuffer, "utf8"); } } } }); } else { console.log('Not Found Path : ', dirPath); } } readDirectory(path);注意上面的判断,第一个明确是 GB2312或者ascii时,直接将相应的编码转为 utf-8。而如果返回是格式,先判断是否有PC下的换行符,如果有则全部将它视为GBK进行处理。
整个思路其实是比较简单,难点在于如果判断文件编码格式。这个真的很难>_<,获取原编码格式后,调用 encoding.convert(buff, 目标编码格式 , 原始编码格式 ); 便可得到所需要的编码。如果有空而且有兴趣,可以下载Notepad++的源码,看它是如何判断文件的编码格式
注:上面的方法所修改的文件,跟 Mac 上需要提交的文件列表是一致的,至少能解决我目前遇到的问题。如果有特殊的,可对上面的代码进行修正。
用到的第三方库:
encoding https://github.com/andris9/encoding
jschardet https://github.com/aadsm/jschardet
node-chardet https://github.com/runk/node-chardet相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
vue+jquery+lodash滑动时顶部悬浮固定功能实现详解
Atas ialah kandungan terperinci Node.js文件编码格式转换步骤详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Petua praktikal untuk menukar huruf Inggeris lebar penuh kepada bentuk separuh lebar Dalam kehidupan moden, kita sering bersentuhan dengan huruf Inggeris, dan kita sering perlu memasukkan huruf Inggeris apabila menggunakan komputer, telefon bimbit dan peranti lain. Walau bagaimanapun, kadangkala kita menemui huruf Inggeris lebar penuh, dan kita perlu menggunakan bentuk separuh lebar. Jadi, bagaimana untuk menukar huruf Inggeris lebar penuh kepada bentuk separuh lebar? Berikut adalah beberapa petua praktikal untuk anda. Pertama sekali, huruf dan nombor Inggeris lebar penuh merujuk kepada aksara yang menduduki kedudukan lebar penuh dalam kaedah input, manakala huruf dan nombor Inggeris separuh lebar menduduki kedudukan lebar penuh.

Fail AI merujuk kepada fail grafik vektor yang dicipta oleh perisian Adobe Illustrator (pendek kata AI), manakala fail CDR merujuk kepada fail grafik vektor yang dicipta oleh perisian CorelDRAW. Memandangkan kedua-dua perisian ini dibangunkan oleh pengeluar yang berbeza, format fail mereka berbeza dan tidak boleh ditukar terus antara satu sama lain. Walau bagaimanapun, kami boleh menukar fail AI kepada fail CDR melalui beberapa kaedah. Kaedah penukaran yang biasa digunakan akan diperkenalkan di bawah. Langkah 1: Eksport fail AI ke format EPS AdobeIllust

Dalam artikel ini, kami akan menunjukkan kepada anda cara menukar fail OpenDocumentTextDocument (ODT) kepada Microsoft Word (Docx, DOC, dll.). Format. Cara Menukar ODT kepada Word dalam Windows 11/10 Berikut ialah cara anda boleh menukar dokumen ODT kepada format DOC atau DOCX pada Windows PC: Tukar ODT kepada Word menggunakan WordPad atau Word Kaedah pertama yang akan kami tunjukkan kepada anda ialah menggunakan WordPad atau MicrosoftWord untuk menukar ODT kepada Word. Berikut ialah langkah-langkah untuk mencapai ini: Pertama, buka aplikasi WordPad menggunakan menu Mula. Sekarang, pergi ke

Menukar mesin maya (VM) kepada mesin fizikal ialah proses memindahkan contoh maya dan perisian aplikasi yang berkaitan ke platform perkakasan fizikal. Penukaran ini membantu mengoptimumkan prestasi sistem pengendalian dan penggunaan sumber perkakasan. Artikel ini bertujuan untuk memberikan pandangan yang mendalam tentang cara membuat penukaran ini. Bagaimana untuk melaksanakan migrasi dari mesin maya ke mesin fizikal? Biasanya, proses penukaran antara mesin maya dan mesin fizikal dilakukan di luar mesin maya oleh perisian pihak ketiga. Proses ini terdiri daripada berbilang peringkat yang melibatkan konfigurasi mesin maya dan pemindahan sumber. Sediakan mesin fizikal: Langkah pertama ialah memastikan mesin fizikal memenuhi keperluan perkakasan untuk Windows. Kami perlu membuat sandaran data pada mesin fizikal kerana proses penukaran akan menimpa data sedia ada. *Nama pengguna dan kata laluan untuk akaun pentadbir dengan hak pentadbir untuk mencipta imej sistem. akan menjadi maya

Penukaran masa Golang: Cara menukar cap masa kepada rentetan Di Golang, operasi masa adalah salah satu operasi yang sangat biasa. Kadangkala kita perlu menukar cap masa kepada rentetan untuk paparan atau penyimpanan yang mudah. Artikel ini akan memperkenalkan cara menggunakan Golang untuk menukar cap masa kepada rentetan dan memberikan contoh kod khusus. 1. Penukaran cap masa dan rentetan Di Golang, cap masa biasanya dinyatakan dalam bentuk nombor integer, yang mewakili bilangan saat dari 1 Januari 1970 hingga masa semasa. Rentetannya ialah

Artikel ini akan memperkenalkan secara terperinci cara menukar bulan dalam PHP kepada bulan Inggeris, dan memberikan contoh kod khusus. Dalam pembangunan PHP, kadangkala kita perlu menukar bulan digital kepada bulan Inggeris, yang sangat praktikal dalam beberapa pemprosesan tarikh atau senario paparan data. Prinsip pelaksanaan, contoh kod khusus dan langkah berjaga-jaga akan diterangkan secara terperinci di bawah. 1. Prinsip pelaksanaan Dalam PHP, anda boleh menukar bulan digital kepada bulan Bahasa Inggeris dengan menggunakan kelas DateTime dan kaedah format. Tarikh

QQ Music membolehkan semua orang menikmati menonton filem dan menghilangkan kebosanan Anda boleh menggunakan perisian ini setiap hari untuk memenuhi keperluan anda dengan mudah Sebilangan besar lagu berkualiti tinggi tersedia untuk didengari oleh semua orang Lain kali anda mendengarnya, anda tidak memerlukan sambungan Internet Lagu yang dimuat turun di sini bukan dalam format MP3 dan tidak boleh digunakan pada platform lain Selepas lagu keahlian tamat, tiada cara untuk mendengarnya lagi , ramai rakan ingin menukar lagu ke dalam format MP3 Di sini editornya Anda sediakan kaedah supaya semua orang boleh menggunakannya! 1. Buka QQ Music pada komputer anda, klik butang [Menu Utama] di penjuru kanan sebelah atas, klik [Audio Transcoding], pilih pilihan [Tambah Lagu], dan tambah lagu yang perlu ditukar; lagu, klik untuk memilih Tukar kepada [mp3]

Cara menukar huruf Inggeris lebar penuh kepada huruf separuh lebar Dalam kehidupan harian dan kerja, kadangkala kita menghadapi situasi di mana kita perlu menukar huruf Inggeris lebar penuh kepada huruf separuh lebar, seperti semasa memasukkan kata laluan komputer, mengedit dokumen atau mereka bentuk susun atur. Huruf dan nombor Inggeris lebar penuh merujuk kepada aksara dengan lebar yang sama dengan aksara Cina, manakala huruf Inggeris separuh lebar merujuk kepada aksara dengan lebar yang lebih sempit. Dalam operasi sebenar, kita perlu menguasai beberapa kaedah mudah untuk menukar huruf Inggeris lebar penuh kepada huruf separuh lebar supaya kita boleh memproses teks dan nombor dengan lebih mudah. 1. Huruf Inggeris lebar penuh dan huruf Inggeris separuh lebar
