如何用nodejs强制中文文件名以utf-8编码
时间: 2024-02-28 20:56:16 浏览: 184
volley.jar包,解决中文乱码,强制改成utf-8编码
在Windows系统中,中文文件名通常使用GBK编码。如果你想在Node.js中强制将中文文件名转换为UTF-8编码,可以使用如下方法:
```javascript
const fs = require('fs');
const path = require('path');
const filename = '中文文件名.txt'; // 假设文件名是中文
// 将文件名按GBK编码转换为Buffer对象
const buffer = Buffer.from(filename, 'binary');
// 将Buffer对象按UTF-8编码转换为字符串
const utf8Filename = buffer.toString('utf8');
// 构造新的文件路径
const oldPath = path.join(__dirname, filename);
const newPath = path.join(__dirname, utf8Filename);
// 重命名文件
fs.rename(oldPath, newPath, (err) => {
if (err) throw err;
console.log('文件重命名成功');
});
```
在代码中,我们首先将文件名按GBK编码转换为一个Buffer对象。然后,我们将这个Buffer对象按UTF-8编码转换为字符串,得到新的文件名。最后,我们使用`fs.rename`函数将文件重命名为新的文件名,完成操作。
阅读全文