nodejs如何储存一个GBK编码的文件

简介: 思路:utf-8 -> decode(to buffer) -> convert to gbk(buffer also) -> write buffer to file.var fs = require('fs');var iconv = require('iconv-lite');// 这里是utf8var str = '坑爹啊,都是国际项目了,编码居然还用gbk';console.

思路:utf-8 -> decode(to buffer) -> convert to gbk(buffer also) -> write buffer to file.

var fs = require('fs');
var iconv = require('iconv-lite');

// 这里是utf8
var str = '坑爹啊,都是国际项目了,编码居然还用gbk';
console.log(new Buffer(str).length);

// 转换成gbk
var encoded = iconv.encode(str, 'gbk');

fs.writeFile('gbk.txt', encoded, function () {
  var buf = fs.readFileSync('gbk.txt');
  console.log(buf.length);
});

request库使用时, gb2312、GBK中文乱码解决方法

/**
 * [@param](/user/param) url 需要抓取的url地址
 * [@param](/user/param) calback
 */
function fetchContent(url,calback){
    var req = request(url, {timeout: 10000, pool: false});
    req.setMaxListeners(50);
    req.setHeader('user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')
        .setHeader('accept', 'text/html,application/xhtml+xml');

    req.on('error', function(err) {
        console.log(err);
    });
    req.on('response', function(res) {
        var bufferHelper = new BufferHelper();
        res.on('data', function (chunk) {
            bufferHelper.concat(chunk);
        });
        res.on('end',function(){
            var result = iconv.decode(bufferHelper.toBuffer(),'GBK');
            calback(result);
        });
    });
}

参考资料

https://cnodejs.org/topic/53142ef833dbcb076d007230

相关文章
|
4月前
|
JSON JavaScript 数据格式
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
|
4月前
|
JavaScript 前端开发
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
|
6月前
|
Kubernetes 容器
k8s指定config文件查看node—2023.02
k8s指定config文件查看node—2023.02
|
4月前
|
JSON JavaScript API
Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)
Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)
|
7月前
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
451 0
|
10月前
|
JavaScript 前端开发 Linux
Node.js 获取文件信息及路径
Node.js 获取文件信息及路径
|
5月前
|
Windows
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
|
3月前
|
JavaScript API Windows
Nodejs 文件 与 路径 相关用法实例解析
Nodejs 文件 与 路径 相关用法实例解析
78 0
|
23小时前
|
JSON 关系型数据库 MySQL
node笔记_读取目录的文件
node笔记_读取目录的文件
6 1
|
3月前
|
JavaScript
nodejs统计文件/文件夹数量
nodejs统计文件/文件夹数量