因为历史的原因,论坛还是用了 GBK
的编码,因此全套的程序需要做 UTF-8
的转换。
为了方便批量转换源代码,写了下面的 Node.js
脚本,可以批量对 Discuz、UCenter 等PHP程序转换 UTF-8
。
使用前请 npm install iconv-lite
来安装依赖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| const iconv = require('iconv-lite'); const fs = require('fs'); const Path = require('path');
const INPUT_ROOT = './wwwroot'; const OUTPUT_ROOT = './dist/';
if (!fs.existsSync(OUTPUT_ROOT)) { fs.mkdirSync(OUTPUT_ROOT); }
const FORMATS = ['.htm', '.php', '.js', '.txt', '.html', '.css', '.xml', '.json'];
tree(INPUT_ROOT);
function tree(dir) { fs.mkdirSync(OUTPUT_ROOT + dir); fs.readdirSync(dir).forEach(v => { const path = dir + '/' + v; const stat = fs.statSync(path); if (stat.isDirectory()) { tree(path); } else { const format = Path.extname(v); if (FORMATS.indexOf(format) === -1) { fs.copyFileSync(path, OUTPUT_ROOT + path); return; }
fs.createReadStream(path) .pipe(iconv.decodeStream('gbk')) .pipe(iconv.encodeStream('utf8')) .pipe(fs.createWriteStream(OUTPUT_ROOT + path));
console.log(path); } }); }
|
除非注明,麦麦小家文章均为原创,转载请以链接形式标明本文地址。
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
本文地址:https://blog.micblo.com/2019/04/30/%E5%A4%9A%E6%96%87%E4%BB%B6-GBK-%E6%89%B9%E9%87%8F%E8%BD%AC%E6%8D%A2-UTF-8/