美文网首页资源干货程序员
解决node.js读取文件时中文乱码问题

解决node.js读取文件时中文乱码问题

作者: Lareina林暖暖 | 来源:发表于2017-04-03 15:49 被阅读1393次

    node.js不能很好地支持中文字符,在读取文件的时候,会出现对中文内容读取的乱码问题(linux系统下默认utf-8编码,一般不会出现该问题,但windows和部分虚拟机由于文件存储格式不同,可能会存在这个问题)
    解决方案有两种

    1.简便方法

    将读取的源文件格式储存为utf8编码格式,读取源文件的js文件也储存为utf-8编码格式,就可以避免中文乱码显示

    2.最佳方案

    若读取的文件不在本地,我们无法保证文件的存储为utf-8编码格式,这个时候我们可以引入一个模块 ----纯Javascript转换编码的模块 iconv-lite,该模块可以实现window下的转换 ,通过npm可以安装此模块,bufferhelper是一个操作buffer的加强类
    首先安装两个模块

    npm install iconv-lite
    npm install bufferhelper```
    

    //js源代码 --- 读取本地input.txt文件
    var iconv = require('iconv-lite');
    var fs = require('fs');
    var fileStr = fs.readFileSync('input.txt', {encoding:'binary'});
    var buf = new Buffer(fileStr, 'binary');
    var str = iconv.decode(buf,'utf8');
    console.log(str); ```
    思路:读取文件->按二进制编码->再按utf-8解码

    相关文章

      网友评论

      本文标题:解决node.js读取文件时中文乱码问题

      本文链接:https://www.haomeiwen.com/subject/wbqoottx.html